gpt4 book ai didi

c++ - 如何将多个图标添加到单个 TreeView 项目?

转载 作者:行者123 更新时间:2023-11-28 08:21:35 25 4
gpt4 key购买 nike

我正在尝试向 Treeview 项目显示多个图标,但它没有显示所有图标,它只显示一个。我正在使用以下代码:

CImageList m_imageState;
m_cTree.m_imageState.Create(16, 16, ILC_MASK, 0, 4);
m_cTree.m_imageState.Add(&bm, RGB(255,255,0));
m_cTree.m_imageState.Add(&bm2, RGB(255,0,255));
m_cTree.m_imageState.Add(&bm, RGB(255,255,0));
m_cTree.m_imageState.Add(&bm1, RGB(0,255,255));
m_cTree.SetImageList( &(m_cTree.m_imageState), TVSIL_NORMAL );

但是当我看到 Treeview 时,项目只显示一个图标。是否可以使用 Treeview 项目显示多个图标?

请建议我该怎么做。

最佳答案

正确,TreeView 控件中的每个项目只会显示一个图标。这是设计使然,是 MFC 库包装的 native 控件的硬性限制。

您要能够为每个项目显示多个图标的唯一方法是 owner drawing .对于 TreeView 控件来说,这是一项相当困难的任务,远不如所有者绘制按钮或标签控件那么容易。确保您确实需要此功能,并考虑是否有更好的方式向您的用户显示相关信息。

或者,您可以创建自定义位图,将多个图像并排组合,并将它们添加到您的 ImageList。生成的图像将比它们的高度更宽,但控件并不关心:它会显示您指定的任何大小的图像,只要图像列表中的所有图像具有相同的尺寸即可。这绝对是一种 hack,但它可能会起作用,具体取决于您的需要。

关于c++ - 如何将多个图标添加到单个 TreeView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com