MFC CTreeCtrl控件
知识点: 认识CTreeCtrl CTreeCtrl控件属性 CTreeCtrl添加根项 CTreeCtrl添加子项 一、CTreeCtrl控件属性 先设置CTreeCtrl的属性: Has Lines true 显示关系线 Lines at root true 显示根结点的 关系线和+-号 Has Button true 显示+-号 Edit Labels true 则对应 鼠标单击修改树项的名称 //窗口样式 Create函数时用 CTreeCtrl::Create的调用格式如下: BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); dwStyle可以是以下值的组合 TVS_HASLINES 表示树控制在各子项之间存在连线; TVS_LINESATROOT 表示树控制在根项之间存在连线; TVS_HASBUTTONS 表示树控制视在父项左侧存在展开合拢控制按钮; TVS_EDITLABELS 表示可以控制鼠标单击修改树项的名称; TVS_SHOWSELALWAYS 表示选中项即使在窗口失去输入焦点时仍然保持选中状态; TVS_DISABLEDRAGDROP表示禁止树控制发送TVN_BEGINDRAG消息 二、CTreeCtrl添加根项 HTREEITEM InsertItem( LPCTSTR lpszItem, // HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST ); //位置 #define TVI_ROOT ((HTREEITEM)(ULONG_PTR)-0x10000) #define TVI_FIRST ((HTREEITEM)(ULONG_PTR)-0x0FFFF) #define TVI_LAST ((HTREEITEM)(ULONG_PTR)-0x0FFFE) #define TVI_SORT ((HTREEITEM)(ULONG_PTR)-0x0FFFD) 三、CTreeCtrl添加子项 HTREEITEM InsertItem( LPCTSTR lpszItem, // HTREEITEM hParent = TVI_ROOT, //指定父项 HTREEITEM hInsertAfter = TVI_LAST //指定插入位置 在hInsertAfter 之后 ); // TODO: 在此添加控件通知处理程序代码 CTreeCtrl* ptree=(CTreeCtrl*)GetDlgItem(IDC_TREE1); HTREEITEM hitem=ptree->InsertItem(L"我的电脑"); //插入子项 ptree->InsertItem(L"AAAA",hitem,TVI_LAST); ptree->InsertItem(L"BBBB",hitem,TVI_LAST); HTREEITEM hsubitem =ptree->InsertItem(L"CCC",hitem,TVI_LAST); ptree->InsertItem(L"3333",hsubitem,TVI_SORT); ptree->InsertItem(L"1111",hsubitem,TVI_SORT); ptree->InsertItem(L"2222AAAA",hsubitem,TVI_SORT); ptree->InsertItem(L"2222",hsubitem,TVI_SORT); ptree->InsertItem(L"我的文档"); ptree->InsertItem(L"网上邻居"); }