CTreeCtrl 控制項的用法

2021-06-16 22:26:59 字數 2163 閱讀 5769

樹形控制項在介面程式設計中應用十分普遍,如在資源管理器中和樹形結構顯示書的目錄等,我們一步步研究樹形控制項的使用。

在對話方塊介面上首先拖動建立乙個樹,一般我們改變三個屬性:

has buttons顯示帶有」+」或」-「的小方框,表示某項能否被展開或已展開,預設為選中,我們改為選中。

has lines在父項與子項之間連線以清楚地顯示結構,預設為選中,改為選中。

lines at root:在根部劃線,預設為選中,改為選中。

其餘根據需要,可以修改,如always show slection,edit labels

接下來就要按我們的需要顯示內容了,請看常用函式:

改變節點函式:

插入樹節點:htreeitem insertitem(lpctstr lpszitem, int nimage,int nselectedimage, htreeitem hparent = tvi_root, htreeitem hinsertafter = tvi_last)

lpszitem為項的名稱,nimage為位圖序列的索引,nselectedimage為選中項的點陣圖序列索引,hparent為插入項的父項,如果為tvi_root或null,則插入樹的最高層,hinsertafter取值為tvi_first,tvi_last,tvi_sort。

刪除樹節點:bool deleteitem(htreeitem hitem)

刪除所有樹節點:bool deleteallitems()

擴充套件節點:bool expand(htreeitem hitem, uint ncode),ncode是乙個標誌,指定了函式執行的操作,可以是tve_collapse(摺疊),tve_collapsereset(摺疊並移走所有的子項),tve_expand(展開),tve_toggle(在展開和摺疊狀態之間反轉).

htreeitem getrootitem() const;

htreeitem getnextitem(htreeitem hitem, uint ncode) const

htreeitem getchilditem(htreeitem hitem) const

htreeitem getnextsiblingitem(htreeitem hitem) const

htreeitem getprevsiblingitem(htreeitem hitem) const

htreeitem getparentitem(htreeitem hitem) const

htreeitem getfirstvisibleitem() const

htreeitem getnextvisibleitem(htreeitem hitem) const

htreeitem getprevvisibleitem(htreeitem hitem) const

htreeitem getlastvisibleitem() const

cstring getitemtext(_in_ htreeitem hitem) const;

bool setitemtext(_in_ htreeitem hitem, _in_z_ lpctstr lpszitem);

獲得或設定選擇的節點:

htreeitem getselecteditem() const

bool selectitem(htreeitem hitem)

是否有子節點:bool itemhaschildren(_in_ htreeitem hitem) const;

檢測點是否在樹節點區域:htreeitem hittest(_in_ cpoint pt, _in_opt_ uint* pflags = null) const;

判斷是否是否最頂層節點用getparentitem(hitem)== null

樹節點右鍵單擊選單的實現,先過載右鍵單擊函式,然後分別實現相應選單的功能:

void c**dlg::onnmrclicktree1(nmhdr *pnmhdr, lresult *presult)

else

if (hcuritem != hitem)

m_tree.clienttoscreen(&pt);

cmenu menu;

if (menu.loadmenua(idr_menu1))

}*presult = 0;

}實現樹節點的多選和拖動需要派生乙個新類,在此不再詳寫了。

CTreeCtrl控制項

在這裡,你可以獲得以下資訊 1.ctreectrl 樣式及設定 2.擴充套件樣式設定 3.資料插入 ctreectrl控制項 cobject ccmdtarget cwnd ctreectrl 1.ctreectrl 樣式及設定 long lstyle lstyle getwindowlong m ...

MFC 樹控制項CTreeCtrl

常用屬性設定 屬性 含義 has buttons true 有展開按鈕 has lines true 有展開線 lines at root true 有根節點 常用介面 介面 功能 獲取應用程式物件指標 載入自定義圖示 cimagelist create 建立影象列表 cimagelist add ...

MFC樹控制項CTreeCtrl

屬性 含義 has buttons true 有展開按鈕 has lines true 有展開線 lines at root true 有根節點 介面 功能 獲取應用程式物件指標 載入自定義圖示 cimagelist create 建立影象列表 cimagelist add 影象列表追加圖示 ctr...