Win32-SDK平台下怎么向TreeView节点插入一个对象,就好象实现MFC中SetItemData,GetItemData类似函数的功能()

Win32-SDK平台下如何向TreeView节点插入一个对象,就好象实现MFC中SetItemData,GetItemData类似函数的功能(在线等)
Win32-SDK平台下如何向TreeView节点插入一个对象,就好象实现MFC中SetItemData,GetItemData类似函数的功能

------解决方案--------------------
用lParam保存自定义数据指针。
------解决方案--------------------

TreeView 的每个节点信息都保存在一个结构体中;

这个结构体就是:TVITEM ,它的定义如下:

C/C++ code
typedef struct tagTVITEM{
    UINT      mask;
    HTREEITEM hItem;
    UINT      state;
    UINT      stateMask;
    LPTSTR    pszText;
    int       cchTextMax;
    int       iImage;
    int       iSelectedImage;
    int       cChildren;
    LPARAM    lParam;
} TVITEM, FAR *LPTVITEM;

------解决方案--------------------
看看MFC是怎么做的吧

C/C++ code

BOOL CTreeCtrl::SetItem(HTREEITEM hItem, UINT nMask, LPCTSTR lpszItem, int nImage,
    int nSelectedImage, UINT nState, UINT nStateMask, LPARAM lParam)
{
    ASSERT(::IsWindow(m_hWnd));
    TVITEM item;
    item.hItem = hItem;
    item.mask = nMask;
    item.pszText = (LPTSTR) lpszItem;
    item.iImage = nImage;
    item.iSelectedImage = nSelectedImage;
    item.state = nState;
    item.stateMask = nStateMask;
    item.lParam = lParam;
    return (BOOL)::SendMessage(m_hWnd, TVM_SETITEM, 0, (LPARAM)&item);
}