我有一个ATL应用程序,其中包含一个包含TAB控件的对话框。该应用程序使用通用控件清单。
在具有视觉样式的XP下,选项卡控件背景与对话框和控件(主要是复选框)的颜色不同,因此看起来非常难看。
我该如何解决?
答案 0 :(得分:5)
显然,使用XP视觉样式可以使标签控制页面正确着色。
在每个页面的WM_INITDIALOG处理程序中,调用uxtheme API EnableThemeDialogTexture
使用ETDT_ENABLETAB
标志会自动更改对话框及其所有子控件的背景颜色,以便在选项卡上进行适当的绘制。
对话框页面不需要任何透明标志,或者实际上任何样式位设置与以前不同。如果您在页面DialogProc中覆盖了WM_ERASEBKGND
或WM_CTLCOLORDLG
,则需要恢复默认处理(返回FALSE
)。
答案 1 :(得分:0)
复选框会将WM_CTLCOLORBTN通知发布到其父级。如果对于复选框控件ID,父窗口的消息处理程序返回
的结果GetStockObject(HOLLOW_BRUSH)
然后应该使用透明背景绘制复选框,这样可以为您提供所需的外观。
答案 2 :(得分:0)
Here您可以找到问题的答案。