【发布时间】:2020-01-20 04:31:32
【问题描述】:
我想在我的 CListCtrl 派生类中添加复选框,该类具有 LVS_OWNERDRAWFIXED 样式,用于在任何子项中绘制它们。我可以在 DrawItem 成员函数中简单地绘制它们,但看起来有点糟糕。如果设置了 LVS_EX_CHECKBOXES 样式,我如何检索用于此控件的复选框的图像?这很重要,因为在每个 Windows 版本中,这些复选框都有自己独特的外观。
有可能吗?
【问题讨论】:
-
我几乎不相信有这样的图像。
LVS_OWNERDRAWFIXED的重点是随心所欲地自己绘制所有内容。基本上这就是 Windows 在其默认行为中所做的。无论如何,你为什么要复制标准的 Windows 外观?制作比在 Windows 中更好的东西,这样您的控件就会看起来非常可区分和吸引人。 -
@Jovibor 问题是我的应用程序中有很多其他地方都有标准外观的复选框,例如 - ctreectrl、属性表,如果我添加到列表不同的复选框,它会看起来很乱
-
想到的解决方案之一是使用
BUTTON类名和BS_CHECKBOX样式的CreateWindow,然后在内存中打印它。然后BitBlt它。 -
@Jovibor 你能举个例子吗?