ATL App 中的 TAB 控件背景,XP 样式

Posted

技术标签:

【中文标题】ATL App 中的 TAB 控件背景,XP 样式【英文标题】:TAB control background in ATL App, XP styles 【发布时间】:2010-10-21 01:12:38 【问题描述】:

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

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

Screenshot

我该如何解决这个问题?

【问题讨论】:

这里相同问题的“完美”答案:***.com/questions/27085427/… 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

Here您可以找到问题的答案。

【讨论】:

【参考方案3】:

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

GetStockObject(HOLLOW_BRUSH)

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

【讨论】:

以上是关于ATL App 中的 TAB 控件背景,XP 样式的主要内容,如果未能解决你的问题,请参考以下文章

[WTL/ATL]_[初级]_[如何设置CEdit的文本框背景色和文字颜色]

[WTL/ATL]_[初级]_[如何设置CEdit的文本框背景色和文字颜色]

vue点击tab改变背景颜色

[WTL/ATL]_[初级]_[TreeView控件如何显示ToolTip]

MFC如何配置使用Win7风格的控件而不是XP风格控件

Android控件篇 TabLayout中的Tab间隔设置方法 上篇