使用此控件一般先将“Has buttons”、"Has lines"、"Lines at root"属性设置上。
WTL、MFC等库封装了InsertItem函数,原理是填好了TVINSERTSTRUCT数据结构,然后向控件发送TVM_INSERTITEM消息。
最简单的InsertItem函数:
HTREEITEM InsertItem(
LPCTSTR lpszItem,
HTREEITEM hParent = TVI_ROOT,
HTREEITEM hInsertAfter = TVI_LAST );
InsertItem会返回HTREEITEM,这个返回值可以继续作为hParent使用。
对于每个item来说,可以记录一个lParam,这个lParam可以解释为一个DWORD,也可以解释为一个指针。
对于WTL和MFC来说,设置这个context的函数是SetItemData
BOOL SetItemData(
HTREEITEM hItem,
DWORD dwData );
MFC、WTL提供了对于每个item提供了GetItemText、SetItemText函数。
其原理是向控件窗体发送TVM_GETITEM、TVM_SETITEM消息。
