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"网上邻居");
}
原文地址:https://www.cnblogs.com/whzym111/p/6225751.html