MFC CTreeView学习之初始化(一)

void CMyTreeView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
m_TreeCtrl = &GetTreeCtrl();
/*
TVS_HASLINES 表示树控制在各子项之间存在连线;
TVS_LINESATROOT 表示树控制在根项之间存在连线;
TVS_HASBUTTONS 表示树控制视在父项左侧存在展开合拢控制按钮;
TVS_EDITLABELS 表示可以控制鼠标单击修改树项的名称;
TVS_SHOWSELALWAYS 表示选中项即使在窗口失去输入焦点时仍然保持选中状态;
TVS_DISABLEDRAGDROP表示禁止树控制发送TVN_BEGINDRAG消息
*/

m_TreeCtrl->ModifyStyle(0, TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS);
/*
typedef struct tagTVINSERTSTRUCTW {
HTREEITEM hParent;   ①hParent 父项的句柄。如果这个成员的值是TVI_ROOT或NULL,这项将被作为树形控件的根插入。
HTREEITEM hInsertAfter; ②hInsertAfter 插入的新项之后的项的句柄。 或者这些值TVI_FIRST在列表的开始插入项;TVI_LAST在列表的最后插入项;TVI_ROOT作为一个根项添加;TVI_SORT以字母顺序插入项
union
{
TVITEMEXW itemex;
TV_ITEMW  item;
} DUMMYUNIONNAME;
} TVINSERTSTRUCTW, *LPTVINSERTSTRUCTW;
*/

/*
typedef struct tagTVITEMW {
UINT      mask;
HTREEITEM hItem;
UINT      state;
UINT      stateMask;
LPWSTR    pszText;
int       cchTextMax;
int       iImage;
int       iSelectedImage;
int       cChildren;
LPARAM    lParam;
} TVITEMW, *LPTVITEMW;
*/


TVINSERTSTRUCT tvInsert;
HTREEITEM hTreeItem;
tvInsert.hInsertAfter = NULL;
tvInsert.hParent = TVI_ROOT; //如果这个成员的值是TVI_ROOT或NULL,这项将被作为树形控件的根插入
tvInsert.item.mask = LVFIF_TEXT;
tvInsert.item.pszText = L"一年级";
hTreeItem = m_TreeCtrl->InsertItem(&tvInsert);

tvInsert.hParent = hTreeItem;
tvInsert.item.pszText = L"1班";
m_TreeCtrl->InsertItem(&tvInsert);

tvInsert.item.pszText = L"2班";
m_TreeCtrl->InsertItem(&tvInsert);
m_TreeCtrl->Expand(hTreeItem, TVE_EXPAND); //设置节点展开,默认为闭合

tvInsert.hParent = TVI_ROOT;
tvInsert.item.pszText = L"二年级";
hTreeItem = m_TreeCtrl->InsertItem(&tvInsert);

tvInsert.hParent = hTreeItem;
tvInsert.item.pszText = L"1班";
m_TreeCtrl->InsertItem(&tvInsert);

tvInsert.item.pszText = L"2班";
m_TreeCtrl->InsertItem(&tvInsert);
//m_TreeCtrl->Expand(hTreeItem, TVE_EXPAND); //设置节点展开

tvInsert.item.pszText = L"3班";
m_TreeCtrl->InsertItem(&tvInsert);
}

你可能感兴趣的:(MFC)