启用视觉样式时,我可以覆盖控件的颜色吗?

时间:2011-05-16 18:45:10

标签: c++ c++builder vcl

我在C ++ Builder 2010中有一个应用程序,它启用了Visual Styles / Runtime主题,可以使用运行时查找按钮和选项卡。但是,我有一组复选框(TCheckBox),如果可能的话,我想覆盖它的运行时样式。

我的复选框用于切换各种颜色的图形叠加层。当我禁用运行时主题时,我可以设置复选框的背景以显示它将启用的颜色,如下所示: checkboxes with a custom background color

启用运行时主题后,有没有办法实现同样的效果?

感谢stukelly,我可以选择性地禁用单个控件的视觉样式,但是在调用SetWindowTheme后,我似乎无法修改该控件的颜色或其他样式:

SetWindowTheme(CheckBox1->Handle, L" ", ""); 

2 个答案:

答案 0 :(得分:3)

您可以尝试使用SetWindowTheme功能禁用每个复选框的主题。

  SetWindowTheme(CheckBox1->Handle, NULL, ""); 

我不确定第二个参数是否需要NULLL" ",如文档所述。

  SetWindowTheme(CheckBox1->Handle, L" ", ""); 

我使用以下参考文献来回答这个问题 http://www.delphigroups.info/3/7/54654.html
borland.public.delphi.ide.general

答案 1 :(得分:1)

将每个复选框放在自己的面板上,并将其设置为您想要的颜色。