1.树控件插入节点:函数
(1)HTREEITEM InsertItem( LPTVINSERTSTRUCT lpInsertStruct );spa
(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_SELECTEDIMAGEcode
2.树控件消息响应:索引
TVN_SELCHANGING:树控件被选择前发送,能够控制是否选择节点,其参数中拿到的是上一次选择的节点。图片
TVN_SELCHANGED:树控件被选择后发送。字符串
在消息响应时,参数获得NMHDR* 和LRESULT* 类型,但须要将NMHDR*强制转换为NMTREEVIEW*类型,之因此能够如此强制转换,缘由是:it
typedef struct tagNMTREEVIEW {
NMHDR hdr;
UINT action;
TVITEM itemOld;
TVITEM itemNew;
POINT ptDrag;
} NMTREEVIEW, FAR *LPNMTREEVIEW;
NMHDR类型的第一个数据类型就是NMHDR。(应该有不少须要这种强制类型转换的消息响应方式。)