MFC控件积累——CTreeCtrl控件

来源:互联网 发布:淘宝没有优酷会员卖了 编辑:程序博客网 时间:2024/06/14 23:00

1.树控件插入节点:

(1)HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct );

(2)HTREEITEM InsertItem( UINT nMask,
LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
UINT nState,
UINT nStateMask,
LPARAM lParam,
HTREEITEM hParent,
HTREEITEM hInsertAfter
);

(3)HTREEITEM InsertItem( LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST
);

HTREEITEM InsertItem( LPCTSTR lpszItem,
int nImage,
int nSelectedImage,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST
);

返回值:如果成功则返回新项的句柄;否则返回NULL。

参数: lpInsertStruct 一个指向用来指定要插入的tree view项的属性的TVINSERTSTRUCT的指针。 nMask 用来指定要设置的属性的整数。 lpszItem 一个包含项的文本的字符串的地址。 nImage 项的图像在tree view控件的图像列表中的索引。 nSelectedImage 项的被选择图像在tree view控件的图像列表中的索引。 nState 为项的状态指定的值。 nStateMask 指定要设置的状态。 lParam 与此项关联的一个32位的应用程序指定的值。 hParent 要被插入的项的父项的句柄。 hInsertAfter 新项要被插入其后的项的句柄。 
说明:

此成员函数用来在一个tree view控件中插入一个新项。

这里要注意的是对函数(1)中设置节点图片时,必须将iImage和iSelectedImage同时设置为相同值才可以。并且mask使用TVIF_IMAGE|TVIF_SELECTEDIMAGE


2.树控件消息响应:

TVN_SELCHANGING:树控件被选择发送,可以控制是否选择节点,其参数中拿到的是上一次选择的节点。

TVN_SELCHANGED:树控件被选择发送。

在消息响应时,参数得到NMHDR* 和LRESULT* 类型,但需要将NMHDR*强制转换为NMTREEVIEW*类型,之所以可以如此强制转换,原因是:

typedef struct tagNMTREEVIEW {    NMHDR hdr;     UINT action;     TVITEM itemOld;     TVITEM itemNew;     POINT ptDrag; } NMTREEVIEW, FAR *LPNMTREEVIEW; 
NMHDR类型的第一个数据类型就是NMHDR。(应该有很多需要这种强制类型转换的消息响应方式。)


0 0
原创粉丝点击