delphi 如何更改TCheckBox,TRadioButton,TGroupBox上的标题字体颜色?

tpxzln5u  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(333)

我不知道我的问题是什么,但是我不能在DEx2中为TCheckBox、TRadioButton、TGroupBox和TRadioGroup等控件设置字体颜色。不管我是在IDE中还是以编程方式来做。
我将窗体颜色设置为clBlack,并希望标题为clWhite,但它们不会呈现除clBlack之外的任何颜色。当我为窗体的OnShow事件分配颜色并在调试器中单步执行时,它会显示我分配的值,但在屏幕上它仍然是黑色的。
我没有使用任何风格或其他东西。有什么想法吗?
下面是一个示例表单:

(来源:skippix.us

mrphzbgm

mrphzbgm1#

在应用程序中使用windows主题时,大多数自定义设置(如字体颜色)将被忽略。作为解决方法,您可以根据组件来绘制控件(仅当支持此功能时),重写paint方法,以便在字体中使用您自己的颜色(TRadioGroupTGroupBox),对于TCheckBoxTRadioButton这样的组件,(这是WinAPI控件 Package ),你必须拦截WM_PAINT窗口消息,并实现自己的代码来绘制控件。
同样从Delphi-xe 2开始,你可以使用vcl styles,它允许你改变控件的外观,从这里(当可能的时候)你可以修改样式钩子来应用你自己的字体颜色和其他自定义。

cbwuti44

cbwuti442#

一个简单而容易的解决方法是创建一个没有标题的复选框,然后在它后面添加一个标签。您可以轻松更改标签的颜色。您还可以创建一个新组件,将标签绑定到复选框本身。这就是我在 Delphi 2007上所做的。

cbjzeqam

cbjzeqam3#

它将在以下设置下工作:项目选项>应用程序>主题=无

相关问题