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

标签 c++ winapi atl xp-theme

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

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

Screenshot

我该如何解决?

最佳答案

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

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

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

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

关于c++ - ATL App中的TAB控件背景,XP风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/776304/

相关文章:

c++ - 作为通用指针类型传递的智能指针在传递给另一个函数之前是否需要释放?

c++ - 运算符 TYPE () 并获取对象的地址

c++ - 我可以使用全局系统 Hook 来捕获单击了哪个文件吗?

c++ - 将 double[,] 转换为 Variant*

C++ gamma_distribution 返回无穷大

c++ - 如何在 Arduino 中使用 C++ 成员函数作为中断处理程序?

c++ - 将纯lua对象传递给C函数并获取值

c++ - 如果我在 C++ 中删除了一次数组,但分配了多次怎么办?

c - 无法将多行文本文件复制到缓冲区

c++ - 打开文件浏览器?