如何改变TButton的颜色?

时间:2014-04-15 11:43:36

标签: button c++builder

在" Borland" C ++ Builder 6,如何更改按钮的颜色(TButton)?

我已经尝试过这种方式

button->Font->Color = clRed;

但它没有用。

4 个答案:

答案 0 :(得分:8)

TButton是一个围绕标准Win32 BUTTON控件的瘦包装器,它从操作系统而不是VCL获得它的颜色。您无法为标准Color设置TButtonColor属性的存在只是因为它是从基类继承的。

话虽如此,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。

  • atomkey -