知識點: 認識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"網上鄰居"); }