在" Borland" C ++ Builder 6,如何更改按钮的颜色(TButton
)?
我已经尝试过这种方式
button->Font->Color = clRed;
但它没有用。
答案 0 :(得分:8)
TButton
是一个围绕标准Win32 BUTTON
控件的瘦包装器,它从操作系统而不是VCL获得它的颜色。您无法为标准Color
设置TButton
。 Color
属性的存在只是因为它是从基类继承的。
话虽如此,Win32 BUTTON
确实支持BS_OWNERDRAW
样式。您可以使用SetWindowLong()
启用它,然后将按钮子类化以处理WM_DRAWITEM
消息,以便您可以根据需要绘制按钮。
以下是一个示例组件,它派生自TButton
并实现BS_OWNERDRAW
以公开工作颜色属性:TColorButton
答案 1 :(得分:2)
使用TPanel,Set Color&斜角以匹配按钮外观。 使用OnClick事件,瞧,它是Color Button~; O-)
答案 2 :(得分:1)
另一种选择是使用TBitBtn
,它不是WIN32控件的包装器,而是完全由VCL绘制。
因为它是一个图形控件,所以一切都会按照你的预期绘制
TBitBtn
甚至可以获得键盘焦点,因此它应该可以正常工作。
答案 3 :(得分:1)
如果要更改字体标题的颜色,TBitBtn可以正常工作。之前的回答是它没有得到键盘焦点。我不确定那个人是什么意思 - 但我刚创建了一个包含一个其他对象的表单,包括一个BitBtn - 设置我的Tab键顺序,实际上它会集中注意力。我可以按下键盘的空格键来按下按钮,我可以通过在所需字母前放一个&符号来添加一个ALT热键。对于按钮的所有意图和目的,它似乎表现得像Win32控件 - 但使用CoLoR - 是的!是的,我正在使用Borland C ++ Builder 6。