MFC 樹狀控件

樹狀控件編程比較複雜,在此記下來備用。

首先使用可視化對話框編輯器,拖好樹狀控件,設置好style。

然後在OnInitDialog函數中初始化樹狀控件。如下:

[cpp:showcolumns] view plaincopy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
  1. //得到樹狀控件指針  
  2. CTreeCtrl* pTree=(CTreeCtrl*)GetDlgItem(IDC_TREE1);  
  3. //設置圖像列表  
  4. pTree->SetImageList(&m_imageList,TVSIL_NORMAL);  
  5. //樹狀控件元素插入結構體  
  6. TV_INSERTSTRUCT tvinsert;  
  7. //設置父節點爲空,則爲根節點  
  8. tvinsert.hParent=NULL;  
  9. //設置在節點後插入  
  10. tvinsert.hInsertAfter=TVI_LAST;  
  11. //設置節點是圖像和文字  
  12. tvinsert.item.mask=TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_TEXT;  
  13. //設置要處理的節點,此時爲根節點  
  14. tvinsert.item.hItem=NULL;  
  15. //設置節點狀態  
  16. tvinsert.item.state=0;  
  17. //設置數據項有效屏蔽位  
  18. tvinsert.item.stateMask=0;  
  19. //數據項名稱最大字符數  
  20. tvinsert.item.cchTextMax=6;  
  21. //選中時圖標  
  22. tvinsert.item.iSelectedImage=1;  
  23. tvinsert.item.cChildren=0;  
  24. tvinsert.item.lParam=0;  
  25. tvinsert.item.pszText="Homer";  
  26. tvinsert.item.iImage=2;  
  27. HTREEITEM hDad=pTree->InsertItem(&tvinsert);  
  28. tvinsert.item.pszText="Marge";  
  29. HTREEITEM hMom=pTree->InsertItem(&tvinsert);  
  30. tvinsert.hParent=hDad;  
  31. tvinsert.item.pszText="Bart";  
  32. tvinsert.item.iImage=3;  
  33. pTree->InsertItem(&tvinsert);  
  34. tvinsert.item.pszText="Lisa";  
  35. pTree->InsertItem(&tvinsert);  
  36. tvinsert.hParent=hMom;  
  37. tvinsert.item.pszText="Bart";  
  38. tvinsert.item.iImage=4;  
  39. pTree->InsertItem(&tvinsert);  
  40. tvinsert.item.pszText="Lisa";  
  41. pTree->InsertItem(&tvinsert);  
  42. tvinsert.item.pszText="Dilbert";  
  43. HTREEITEM hOther=pTree->InsertItem(&tvinsert); 

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