TreeView_InsertItem 是 Win32 API 中 TreeView 控件的一个重要函数,用于在 TreeView 中插入一个项。以下是该函数的声明:
HTREEITEM TreeView_InsertItem(HWND hwnd, LPINSERTSTRUCT lpis);

参数说明:
  •  hwnd:TreeView 控件的句柄。

  •  lpis:指向 TVINSERTSTRUCT 结构的指针,包含有关要插入的项的信息。


TVINSERTSTRUCT 结构的声明如下:
typedef struct tagTVINSERTSTRUCT {
    HTREEITEM hParent;          // 父项的句柄
    HTREEITEM hInsertAfter;     // 要插入项的前一个项的句柄
    TV_ITEM item;               // 要插入项的属性
} TVINSERTSTRUCT, *LPTVINSERTSTRUCT;

TV_ITEM 结构的声明如下:
typedef struct tagTVITEM {
    UINT mask;                   // 标志,指定要检索或设置的成员
    HTREEITEM hItem;             // 项的句柄
    UINT state;                  // 项的状态
    UINT stateMask;              // 要改变的状态的位掩码
    LPTSTR pszText;              // 项的文本
    int cchTextMax;              // pszText 缓冲区的大小
    int iImage;                  // 显示的图像的索引
    int iSelectedImage;          // 选中时显示的图像的索引
    int cChildren;               // 子项的数量
    LPARAM lParam;               // 应用程序定义的应用程序专用数据
} TV_ITEM, *LPTV_ITEM;

函数返回值:
  •  如果成功,返回新插入项的句柄 (HTREEITEM);如果失败,返回 NULL。


使用 TreeView_InsertItem 函数可以在 TreeView 控件中插入一个项,并通过 TVINSERTSTRUCT 结构指定父项、插入位置和项的属性。

以下是一个简单的示例:
#include <Commctrl.h>

// 假设 hwndTreeView 是 TreeView 控件的句柄

// 准备插入项的信息
TVINSERTSTRUCT tvInsert;
tvInsert.hParent = TVI_ROOT;  // 根项
tvInsert.hInsertAfter = TVI_LAST;  // 插入到最后
tvInsert.item.mask = TVIF_TEXT | TVIF_PARAM;  // 项的文本和参数
tvInsert.item.pszText = L"New Item";  // 项的文本
tvInsert.item.lParam = 123;  // 应用程序定义的参数

// 插入项
HTREEITEM hNewItem = TreeView_InsertItem(hwndTreeView, &tvInsert);

// 使用 hNewItem 进行相应的操作

在这个示例中,我们通过准备一个 TVINSERTSTRUCT 结构,指定了要插入的项的父项、插入位置和项的属性。然后,通过调用 TreeView_InsertItem 函数将项插入到 TreeView 控件中,并获得新插入项的句柄。最后,我们可以使用这个句柄进行进一步的操作。


转载请注明出处:http://www.zyzy.cn/article/detail/24855/Win32 API/Commctrl.h/TreeView_InsertItem