显示与Items不同的字符串值的一种非常简单的方法是将Style属性csDropDown
设置csOwnerDrawFixed
为Andreas Rejbrand几年前回答的那样。
问题是:一旦你这样做,你就会失去对 Windows 主题的支持。
同样的限制适用于使用csOwnerDrawVariable
这两个Style
值被转换为添加CBS_OWNERDRAWFIXED
或CBS_OWNERDRAWVARIABLE
(除了CBS_DROPDOWNLIST
)Windows COMBOBOX 控件的样式。
反过来,CBS_OWNERDRAWFIXED
或者CBS_OWNERDRAWVARIABLE
导致您立即失去对 Windows 主题的支持。
当您像颜色选择器一样进行完全自定义绘画时,一切都很好。但是当你只想替换绘制的文本时,它不是。
Windows COMBOBOX 控件似乎没有办法解决这个问题,所以我想知道:如何从 Delphi 模拟 Windows 主题?
我认为它与DrawThemedBackground有关,但是自从我完成了认真的 Delphi Control 工作以来已经有一段时间了,所以任何关于如何开始的指示也很好(即使它们使我的假设无效)。