ATL App中的TAB控件背景,XP风格

发布于 2024-07-17 07:30:58 字数 267 浏览 6 评论 0原文

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

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

屏幕截图

我该如何解决这个问题?

I have an ATL application with a dialog containing a TAB control. The App uses a common controls manifest.

Under XP with visual styles, the tab control background is a different color than the dialog and the controls (mostly checkboxes), so it looks quite ugly.

Screenshot

How can I fix that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

卸妝后依然美 2024-07-24 07:30:58

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

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

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

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

There is - apparently - one thing to do to get tab control pages colored correctly using XP visual styles.

In the WM_INITDIALOG handler for each page, call the uxtheme API EnableThemeDialogTexture

With the ETDT_ENABLETAB flag this automatically changes the background color of the dialog and all its child controls to paint appropriately on a tab.

The dialog pages do not need any kind of transparent flag, or indeed any style bit set differently from previously. If you have overridden WM_ERASEBKGND or WM_CTLCOLORDLG in your pages DialogProc you will need to revert to default handling (return FALSE).

呆° 2024-07-24 07:30:58

此处 你可以找到你的问题的答案。

Here you could find answer to your question.

冬天旳寂寞 2024-07-24 07:30:58

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

GetStockObject(HOLLOW_BRUSH)

则应使用透明背景绘制复选框,这应为您提供所需的外观。

The check boxes will post WM_CTLCOLORBTN notifications to their parent. If, for the checkbox control IDs, the parent window's message handler returns the result of

GetStockObject(HOLLOW_BRUSH)

then the check boxes should be drawn with a transparent background, which should give you the look you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文