資源描述:
《VC中樹控件的使用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VC中樹控件的使用樹控件可以對(duì)數(shù)據(jù)進(jìn)行分層顯示。在樹控件中,除根節(jié)點(diǎn)以外,每個(gè)節(jié)點(diǎn)都有一個(gè)父節(jié)點(diǎn),可以擁有多個(gè)兄弟節(jié)點(diǎn)和子節(jié)點(diǎn),從而可以是數(shù)據(jù)以梳妝結(jié)構(gòu)清晰的顯示出來。(樹控件圖標(biāo))一.創(chuàng)建樹控件BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);dwStyle控件的風(fēng)格rect控件顯示區(qū)域pParantWnd父窗口指針nID命令I(lǐng)D值dwStyle中可以使用以下一些樹形控件的專用風(fēng)格: TVS_HASLINES在父/子結(jié)點(diǎn)之間繪制連線
2、 TVS_LINESATROOT在根/子結(jié)點(diǎn)之間繪制連線 TVS_HASBUTTONS在每一個(gè)結(jié)點(diǎn)前添加一個(gè)按鈕,用于表示當(dāng)前結(jié)點(diǎn)是否已被展開 TVS_EDITLABELS結(jié)點(diǎn)的顯示字符可以被編輯 TVS_SHOWSELALWAYS在失去焦點(diǎn)時(shí)也顯示當(dāng)前選中的結(jié)點(diǎn) TVS_DISABLEDRAGDROP不允許Drag/Drop TVS_NOTOOLTIPS不使用ToolTip顯示結(jié)點(diǎn)的顯示字符樹控件通常和圖像列表控件一起使用,在樹控件中可以顯示圖像列表中的圖標(biāo),即為樹控件添加圖標(biāo)。CImageList
3、*SetImageList(CImageList*pImageList,intnImageListType);pImageList標(biāo)識(shí)圖像列表控件指針nImageListType標(biāo)識(shí)圖像列表類型Eg.m_Tree.Create(TVS_LINESATROOT
4、TVS_HASLINES
5、TVS_HASBUTTONS
6、WS_BORDER);......m_ImageList.Create(16,16,ILC_COLOR24
7、ILC_MASK,1,0);......m_Tree.SetImageList(&m_Imag
8、eList,LVSIL_NORMAL);一.向樹控件中插入數(shù)據(jù)在樹形控件中每一個(gè)結(jié)點(diǎn)都有一個(gè)句柄(HTREEITEM),同時(shí)添加結(jié)點(diǎn)時(shí)必須提供的參數(shù)是該結(jié)點(diǎn)的父結(jié)點(diǎn)句柄。格式:1.HTREEITEMinsertItem(LPTVINSERTSTRUCTlpInsertStruct);lpInsertStructLPTVINSERTSTRUCT結(jié)構(gòu)指針,LPTVINSERTSTRUCT結(jié)構(gòu)中包含了插入操作的詳細(xì)信息。1.HTREEITEMinsertItem(UINTnMask,LPCTSTRlpszItem,in
9、tnImage,intnSelectdeImage,UINTnState,UINTnStateMask,LPARAMlParam,HTREEITEMhParent,HTREEITEMhInsertAfter);nMask節(jié)點(diǎn)的哪些信息被設(shè)置lpszItem節(jié)點(diǎn)的文本nImage節(jié)點(diǎn)的圖像索引nSelectdeImage節(jié)點(diǎn)狀態(tài)nSelectdeImage節(jié)點(diǎn)選中時(shí)的圖標(biāo)索引nStateMask節(jié)點(diǎn)的哪些狀態(tài)被設(shè)置lParam指定關(guān)聯(lián)節(jié)點(diǎn)的附加信息hParent父節(jié)點(diǎn)句柄hInsertAfter新插入節(jié)點(diǎn)后面的節(jié)點(diǎn)
10、句柄3.HTREEITEMinsertItem(LPCTSTRlpszItem,HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);4.HTREEITEMinsertItem(LPCTSTRlpszItem,intnImage,intnSelectedImage,HTREEITEMhParent=TVI_ROOT,HTREEITEMhInsertAfter=TVI_LAST);三.展開或收縮樹控件節(jié)點(diǎn)BOOLExpand(HTREEITEMhItem
11、,UINTnCode);hItem展開的節(jié)點(diǎn)句柄nCode展開的動(dòng)作TVE_COLLAPSE:收縮所有節(jié)點(diǎn)TVE_COLLAPSERESET:收縮節(jié)點(diǎn),移除子節(jié)點(diǎn)TVE_EXPAND:展開所有節(jié)點(diǎn)TVE_TOGGLE:展開或收縮當(dāng)前節(jié)點(diǎn)四.刪除節(jié)點(diǎn)BOOLDeleteItem(HTREEITEMhItem);hItem是刪除節(jié)點(diǎn)的句柄BOOLDeleteAllItem();刪除所有節(jié)點(diǎn)為了掌握上述的使用方法,下面舉例說明:創(chuàng)建樹控件步驟:1.創(chuàng)建一個(gè)基于對(duì)話框的應(yīng)用程序,聲明一個(gè)CTreeCtrl類變量m_Tre
12、e及一個(gè)圖像列表對(duì)象m_ImageList,向工程中導(dǎo)入想要顯示的圖標(biāo)資源。2.在OnInitDialog()函數(shù)中輸入如下程序m_Tree.Create(TVS_LINESATROOT
13、TVS_HASLINES
14、TVS_HASBUTTONS
15、WS_BORDER
16、LVS_SHOWSELALWAYS,CRect(0,0,0,0),this,10001);//創(chuàng)建樹控件m_T