我们可以为特定树项目添加图标吗?
我使用以下函数添加与图标的项目:
HTREEITEM InsertItem(LPCTSTR lpszItem,int nImage,int nSelectedImage,HTREEITEM hParent = TVI_ROOT,HTREEITEM hInsertAfter = TVI_LAST);
要跳过一个项目,我正在为nImage
和nSelectedImage
使用-1值。通过这样做,图标没有出现,但空间即将到来。
您是否查看了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;
您将mask
设置为TVIF_IMAGE
并指定iImage
值。
要开始,您需要创建一个CImageList
对象,该对象在CTreeCtrl
的持续时间内保持有效。通常,您将其作为变量添加到类中。示例:
m_imgList.Create(IDB_BMP_CHECK_IMAGELIST, 16, 10, 0x0000FF00);
初始化后,您可以调用ctreectrl :: setimagelist。示例:
m_treeCtrl.SetImageList(&m_imgList, LVSIL_SMALL);
此后您可以使用图像索引值。