VC++中 CTreeCtrl樹控件介紹

ListCtrl在系統中大量被使用,例如Windows資源管理器就是一個典型的例子。

ListCtrl樹形控件功能描述:可以用於樹形的結構,其中有一個根接點(Root)然後下面有許多子結點,而每個子結點上有允許有一個或多個或沒有子結點。MFC中使用CTreeCtrl類來封裝樹形控件的各種操作。  

調用方法:

BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

創建一個窗口,dwStyle中可以使用以下一些樹形控件的專用風格:

TVS_HASLINES 在父/子結點之間繪製連線

TVS_LINESATROOT 在根/子結點之間繪製連線

TVS_HASBUTTONS 在每一個結點前添加一個按鈕,用於表示當前結點是否已被展開

TVS_EDITLABELS 結點的顯示字符可以被編輯

TVS_SHOWSELALWAYS 在失去焦點時也顯示當前選中的結點

TVS_DISABLEDRAGDROP 不允許Drag/Drop

TVS_NOTOOLTIPS 不使用ToolTip顯示結點的顯示字符

在樹形控件中每一個結點都有一個句柄(HTREEITEM),同時添加結點時必須提供的參數是該結點的父結點句柄,利用

HTREEITEM InsertItem( LPCTSTR lpszItem, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST );

可以添加一個結點,pszItem爲顯示的字符,hParent代表父結點的句柄,當前添加的結點會排在hInsertAfter表示的結點的後面,返回值爲當前創建的結點的句柄

 

樹控件圖像列表

樹控件 (Tree Control) (CTreeCtrl) 中的每項都可以有一對與之關聯的位圖化圖像。這些圖像出現在項標籤的左邊。如果選擇了該項,就會顯示一個圖像;如果沒有選擇該項,就會顯示另一個圖像。例如,某項可能在選定時顯示一個打開的文件夾,而在未選定時顯示關閉的文件夾。

若要使用項圖像,必須通過構造 CImageList 對象和使用 CImageList::Create 函數創建相關圖像列表來創建一個圖像列表。然後,將想要的位圖添加到創建的列表中, 如果你希望在每個結點前添加一個小圖標,就必需先調用CImageList* SetImageList( CImageList * pImageList, int nImageListType );指明當前所使用的ImageList,nImageListType爲TVSIL_NORMAL。在調用完成後控件中使用圖片以設置的ImageList中圖片爲準。然後調用
HTREEITEM InsertItem( LPCTSTR lpszItem, int nImage, int nSelectedImage, HTREEITEM hParent = TVI_ROOT, HTREEITEM hInsertAfter = TVI_LAST);添加結點,nImage爲結點沒被選中時所使用圖片序號,nSelectedImage爲結點被選中時所使用圖片序號。

程序簡介:

在此我所舉實例是樹控件採用ODBC與數據庫的連接方法,顯示數據庫中的數據。本程序只是樹控件與數據庫連接的基本框架,可稍加改動,與ListCtrl結合編寫資源管理器,通訊錄等等,本人初步想法是想製作一個“圖書館的附書光盤檢索系統”。程序中,已有樹控件的左擊,雙擊響應,實現功能可根據具體需要在函數中直接改寫添加代碼即可實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章