如何改变TButton的颜色?

use*_*015 5 c++builder button

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

我试过这种方式

button->Font->Color = clRed;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

Rem*_*eau 9

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

话虽如此,Win32 BUTTON确实支持一种BS_OWNERDRAW风格.您可以使用SetWindowLong()它来启用它,然后将按钮子类化以处理WM_DRAWITEM消息,以便您可以根据需要绘制按钮.

下面是一个示例组件,它派生自TButton并实现BS_OWNERDRAW以公开工作颜色属性:TColorButton

  • 链接网页上没有可下载的“TColorButton”源代码:http://delphi.about.com/od/vclwriteenhance/l/aa061104a.htm (2认同)