delphi – 如何在TCheckBox,TRadioButton,TGroupBox上更改字幕字体颜色?

我不知道我的问题是什么,但我无法在DEx2中为TCheckBox,TradioButton,TGroubBoxTradioGroup等控件设置字体颜色.如果我在IDE中或以编程方式执行它并不重要.

我已将表单颜色设置为clBlack,并希望我的标题是clWhite,但它们不会渲染任何颜色,而是clBlack.当我在表单的OnShow事件上分配颜色并在调试器中逐步执行它时,它会显示我分配给它的值,但在屏幕上它仍然是黑色.

我没有使用样式或其他任何东西.有任何想法吗?

这是一个示例表单:
white on black example http://www.skippix.us/temp/Delphi-Font-Problem.bmp

解决方法

在应用程序中使用Windows主题时,将忽略大多数自定义设置(如字体颜色).作为变通方法并且取决于组件,您可以拥有控件(仅当支持功能时),覆盖paint方法以便在字体( TRadioGroup,TGroupBox)中使用您自己的颜色,以及对于 TCheckBoxTRadioButton等组件(其中是WinAPI控件包装器)你必须拦截 WM_PAINT窗口消息并实现自己的代码来绘制控件.

同样从Delphi-xe2开始,你可以使用vcl styles来改变控件的外观,从这里(可能的话)你可以修改样式钩子来应用你自己的字体颜色和其他自定义.

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...