資源描述:
《MFC中treeview控件使用方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、MFCTreeview控件???方法1,用InsertItem添加節(jié)點參數(shù):文字,圖標(biāo),父節(jié)點返回:HTREEITEM示例:添加一系列節(jié)點HTREEITEMhItem=m_Tree.InsertItem("root",NULL,NULL);///root就是節(jié)點的標(biāo)題inti,j;for(i=0;i<4;i++){HTREEITEMhSubItem=m_Tree.InsertItem("item",NULL,NULL,hItem);for(j=0;j<3;j++){m_Tree.InsertItem("subitem",NULL,NULL,hSubIte
2、m);}}InsertItem函數(shù)的第一個參數(shù)就是設(shè)置他的節(jié)點標(biāo)題2.,用ModifyStyle設(shè)置風(fēng)格參數(shù):取消的風(fēng)格,增加的風(fēng)格示例:在對話框初始化時設(shè)置風(fēng)格BOOLCMfc1Dlg::OnInitDialog(){//...m_Tree.ModifyStyle(NULL,TVS_HASBUTTONS
3、TVS_HASLINES
4、TVS_LINESATROOT);}3,用DeleteItem刪除節(jié)點4,用.DeleteAllItems刪除全部節(jié)點5,.用Expand展開/收縮節(jié)點參數(shù):節(jié)點HTREEITEM,展開/收縮示例:m_Tree.Expand(
5、hItem,TVE_EXPAND);/////////////////////////////////////////////////////////CTreeCtrl的概述cc++vcCTreeCtrl在三種不同情況下創(chuàng)建的方式1、如果要在對話框窗口上創(chuàng)建樹形控件,你需要在對話框類中定義一個CTreeCtrl類型的成員變量。2、如果樹形控件是一個子窗口,你可以使用CTreeCtrl::Create()來構(gòu)建樹形空間對象。3、如果你使用了CViewTree對象,那么你需要使用CViewTree::GetTreeCtrl()獲得對樹形控件的引用如果你想在你
6、的控件中使用圖像,需要通過CImageList::SetImageList()來設(shè)置一個圖像列表。你也可以通過使用CTreeCtrl::SetIndent()設(shè)置子項縮進的寬度。一個最好的使用這些函數(shù)的時機是在CDialog::OnInitDialog()或CView::OnInitalUpdate()中??梢酝ㄟ^調(diào)用CTreeCtrl::InsertItem()向樹形控件中添加數(shù)據(jù),每次添加一個數(shù)據(jù)項。這個函數(shù)將返回一個指向這個數(shù)據(jù)項的句柄,這個句柄在后面會使用到,例如在后面添加這個數(shù)據(jù)項的子數(shù)據(jù)項的時候。一個最好的使用這個函數(shù)的時機是在CDialog
7、::OnInitDialog()或CView::OnInitalUpdate()中。當(dāng)用戶和樹形控件交互時,它將會發(fā)送不同的通知消息。你可以通過在控件窗口的消息映射表中添加ON_NOTIFY_REFLECT宏或在控件窗口的父窗口的消息映射表中添加ON_NOTIFY來指定一個函數(shù)處理每個你想處理的消息。通過調(diào)用樹形控件不同的Set成員函數(shù)去設(shè)置它的值,包括子數(shù)據(jù)項縮進寬度、文本、圖像或者和控件相關(guān)的數(shù)據(jù)。使用不同的Get成員函數(shù)來檢查控件的內(nèi)容。你也可以用允許你接受指定數(shù)據(jù)項的父項、子項和兄弟項的函數(shù)得到樹形控件的內(nèi)容。你甚至可以存儲某一結(jié)點的子項。當(dāng)你在
8、處理這個控件時,確定它確實被銷毀。如果樹形控件是在一個對話框中或視圖中,它和CTreeCtrl對象會自動被銷毀,如果不是,你需要保證銷毀控件和CTreeCtrl對象//////////////////////////////////////////////////////////CTreeCtrl的一些操作樹形控件可以用于樹形的結(jié)構(gòu),其中有一個根接點(Root)然后下面有許多子結(jié)點,而每個子結(jié)點上有允許有一個或多個或沒有子結(jié)點。MFC中使用CTreeCtrl類來封裝樹形控件的各種操作。通過調(diào)用BOOLCreate(DWORDdwStyle,constRE
9、CT&rect,CWnd*pParentWnd,UINTnID);創(chuàng)建一個窗口,dwStyle中可以使用以下一些樹形控件的專用風(fēng)格:TVS_HASLINES在父/子結(jié)點之間繪制連線TVS_LINESATROOT在根/子結(jié)點之間繪制連線TVS_HASBUTTONS在每一個結(jié)點前添加一個按鈕,用于表示當(dāng)前結(jié)點是否已被展開TVS_EDITLABELS結(jié)點的顯示字符可以被編輯TVS_SHOWSELALWAYS在失去焦點時也顯示當(dāng)前選中的結(jié)點TVS_DISABLEDRAGDROP不允許Drag/DropTVS_NOTOOLTIPS不使用ToolTip顯示結(jié)點的顯示
10、字符在樹形控件中每一個結(jié)點都有一個句柄(HTREEITEM),同時添加結(jié)點時必須