3

我们可以为特定的树项目添加图标吗?

我正在使用以下功能添加带有图标的项目:

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

要跳过某个项目的图标,我使用 -1 值nImagenSelectedImage。通过这样做,图标不会出现,但空间即将到来。

4

1 回答 1

0

你看过CTreeCtrl::SetItem吗?

最简单的方法是填充并传递一个TVITEM结构。

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

您将其设置maskTVIF_IMAGE并指定iImage值。

首先,您需要创建一个CImageListCTreeCtrl. 您通常将它作为变量添加到类中。例子:

m_imgList.Create(IDB_BMP_CHECK_IMAGELIST, 16, 10, 0x0000FF00);

初始化后,您可以调用CTreeCtrl::SetImageList。例子:

m_treeCtrl.SetImageList(&m_imgList, LVSIL_SMALL);

此后,您可以使用图像索引值。

于 2016-12-28T18:32:56.570 回答