CTreeCtrl 状态图像限制为 15 个图像

Posted

技术标签:

【中文标题】CTreeCtrl 状态图像限制为 15 个图像【英文标题】:CTreeCtrl state image limited to 15 images 【发布时间】:2011-01-21 18:30:28 【问题描述】:

我有一个 CTreeCtrl,它使用“状态图像”在普通图标旁边获取第二个图标。从这里的文档http://msdn.microsoft.com/en-us/library/fc4e6etb(v=vs.80).aspx:

如果指定了状态图像列表,则树控件会在每个项目的图标左侧为状态图像保留空间。应用程序可以使用状态图像(例如选中和清除复选框)来指示应用程序定义的项目状态。位 12 到 15 中的非零值指定状态图像的从 1 开始的索引(0 表示无状态图像)。

由于只有 4 位,保留 0 表示没有状态图像,所以只能有 15 个状态图像。这里也提到了这一点:http://www.codeguru.com/cpp/controls/treeview/usingimages/article.php/c669

问题 我已经用完了所有 15 个状态图标,还想添加更多。我有哪些选择来实现这一目标?

【问题讨论】:

【参考方案1】:

实现自定义绘制的树视图或找到这样的实现。

【讨论】:

谢谢。我实现了类似于在此站点上的自定义绘制:codeproject.com/KB/list/lvcustomdraw.aspx?msg=1197275。除了状态图像之外,我基本上让控件完成了绘制控件的所有工作。对于状态图像,我让它绘制了一个空白图标,然后在 OnCustomDraw 的 CDDS_ITEMPOSTPAINT 期间,我手动在空白图标上透明地绘制了我想要的图标。

以上是关于CTreeCtrl 状态图像限制为 15 个图像的主要内容,如果未能解决你的问题,请参考以下文章

CTreeCtrl 自定义绘制附加状态

MFC树控件CTreeCtrl

MFC-CImagelist图像列表控件

使用自定义参数在 Python 中多次裁剪图像

计算机视觉-图像描述符(图片分类)

将 15 个图像创建为一个 4 行 * 4 列的滚动视图