无符号整形 发表于 2016-11-26 18:21:54

【MFC入门文字教程】21-树形控件(CTreeCtrl)

本帖最后由 无符号整形 于 2016-11-26 20:27 编辑

PS:这节比较复杂,难度:★★★ ~ ★★★★
基础知识:

1. HTREEITEM句柄
树形控件中的每个节点都可以由一个HTREEITEM类型的句柄表示,我们在添加节点时需要它。
2.TVITEM结构体
TVITEM结构体描述了树形控件节点的属性.
3. NMTREEVIEW结构体
NMTREEVIEW结构体中包含了树形控件通知消息的相关信息。
4. TVINSERTSTRUCT结构体
向树形控件中插入新节点时需要用到TVINSERTSTRUCT结构体,它常与TVM_INSERTITEM消息一起使用。
5.NMTVDISPINFO结构体
NMTVDISPINFO结构体中包含了与树节点的显示有关的信息。
其实这些大家都不用死记硬背,其实查资料即可!

常用的成员函数(参考了鸡啄米http://www.jizhuomi.com/software/203.html):

CImageList* SetImageList(CImageList * pImageList,int nImageListType);
如果树节点需要显示图标时,则必须先创建一个CImageList类的对象,并为其添加多个图像组成一个图像序列,然后调用SetImageList函数为树形控件设置图像序列,在用InsertItem插入节点时传入所需图像在图像序列中的索引即可。

DWORD_PTR GetItemData(HTREEITEM hItem) const;
获取树形控件中某个指定节点的附加32位数据,参数hItem为指定的树节点的句柄。


BOOL SetItemData(HTREEITEM hItem,DWORD_PTR dwData);
为树形控件中某个指定节点设置附加的32位数据,参数hItem同上,dwData为要设置的32位数据。


CString GetItemText(HTREEITEM hItem) const;
获取树形控件中某个指定节点的标签文本。参数hItem同上。返回值是包含标签文本的字符串。


BOOL SetItemText(HTREEITEM hItem,LPCTSTR lpszItem);
为树形控件中某个指定节点设置标签文本。参数hItem同上,lpszItem为包含标签文本的字符串的指针。


大家可以试一试。。

实践时间~
PS:主要代码在OnInitDialog里面,有一个图标资源。

烂泥化刚 发表于 2022-6-13 21:32:25

本来就难了,来点图片都没得
页: [1]
查看完整版本: 【MFC入门文字教程】21-树形控件(CTreeCtrl)