CTREECRTL是VC下界面编程中必须掌握的一个基本控件。因此很有必要自己亲手实践一下。
首先声明一个树:
CTreeCtrl m_tree;
然后定义节点,生成一棵树即可:
HTREEITEM hParentItem; m_tree.ModifyStyle(0,TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES); hParentItem = m_tree.InsertItem(_T("parent"),11,11,TVI_ROOT);//树根 m_tree.InsertItem(_T("son"),0,0,hParentItem,TVI_LAST);
这样就生成了一棵树了,是不是很简单,呵呵。
=================================传说中的分割线===============================
下面介绍一下树节点前面的图标如何添加。
既然要添加图标,当然需要事先将icon图标添加进资源里面,然后声明一个数组,用来存储这些图标资源,最后把这些资源add进树里面即可。
HICON icon[12]; icon[0]=AfxGetApp()->LoadIcon(IDI_ICON1); ...... CImageList *m_imagelist = new CImageList; m_imagelist->Create(16,16,ILC_COLOR32| ILC_MASK,7,7);//16*16的图标 m_imagelist->Add(icon[n]);
注意到,专门又新建了一个CImageList,用来管理这些图标。
之后就可以向树中添加这些图标了,当然一定要选好要添加图标和对应树节点之间的对应关系。
m_tree.SetImageList(m_imagelist,TVSIL_NORMAL);
这样就生成了一个带图标的树了。