1

我有一个 ATL 应用程序,其中包含一个包含 TAB 控件的对话框。该应用程序使用通用控件清单。

在具有视觉样式的 XP 下,选项卡控件背景与对话框和控件(主要是复选框)颜色不同,因此看起来很丑。

截屏

我该如何解决?

4

3 回答 3

5

显然,要使用 XP 视觉样式正确着色选项卡控制页面,需要做一件事。

在每个页面的 WM_INITDIALOG 处理程序中,调用 uxtheme APIEnableThemeDialogTexture

使用该ETDT_ENABLETAB标志,它会自动更改对话框及其所有子控件的背景颜色,以在选项卡上适当地绘制。

对话框页面不需要任何类型的透明标志,或者实际上任何与以前不同的样式位设置。如果您已覆盖DialogProcWM_ERASEBKGNDWM_CTLCOLORDLG在您的页面中,您将需要恢复为默认处理(返回FALSE)。

于 2009-08-06T08:07:57.273 回答
0

复选框将向其父级发布 WM_CTLCOLORBTN 通知。如果对于复选框控件 ID,父窗口的消息处理程序返回

GetStockObject(HOLLOW_BRUSH)

那么复选框应该用透明背景绘制,这应该会给你想要的外观。

于 2009-04-23T12:51:28.340 回答
0

在这里你可以找到你的问题的答案。

于 2009-07-15T18:32:03.223 回答