如何制作没有透明文字的TCheckbox(即:它忽略了主题)?我被要求做一些非常规的事情 - 在一个组合框的标题处放置一个复选框。
在XP中,它看起来不太好。
(来源:xrw.bc.ca)
接下来,我想我会尝试在互联网上听到的SetWindowTheme(CheckBox1.Handle,'','')。然后你得到一个白色的背景,但它不会用控件的颜色绘制。
(来源:xrw.bc.ca)
我们怎么做?
谢谢你! 熔点答案 0 :(得分:2)
一个简单的解决方案是将足够的空格字符放入TGroupBox.Caption属性中。更复杂的解决方案是从TGroupBox派生并在Paint方法中使用FillRect / DrawParentBackground来绘制线条。
答案 1 :(得分:0)
过去我刚刚在复选框后面添加了一个空白的TLabel。
虽然
让维护变得有点痛苦答案 2 :(得分:0)
TCheckbox上的Color属性不是这样做的吗?
在上面的图片中,如果您将“颜色”设置为与控件的颜色相同,我认为您可以获得所需的颜色。这将隐藏作为控件一部分的文本下的行并使其融入。
由于您不会提前知道颜色(由于不知道正在使用什么主题),因此您需要在创建表单时在运行时动态执行此操作,例如:
Checkbox.Color := Control.Color;
答案 3 :(得分:0)
谢谢大家的回答。最后,我这样做了:
以编程方式将groupbox标题的开头用空格填充到正确的宽度。
将复选框(没有标题)移动到标题区域。
这不是一个完美的解决方案,但似乎没问题。