gpt4 book ai didi

C 和 Windows API : Changing Color Of Static Controls Which Are Child Of A Tab Control

转载 作者:行者123 更新时间:2023-11-30 18:06:18 25 4
gpt4 key购买 nike

我正在尝试更改选项卡控件子级的静态控件的颜色。现在的问题是,当我尝试使用 WM_CTLCOLORSTATIC 更改它时,它不起作用。

当我将主窗口定义为静态的父窗口时,它工作正常。但是,当它们是选项卡的子项时,如何更改颜色?

最佳答案

正如 David Heffernan 所说,当启用视觉样式(主题)时,选项卡控件具有精美的渐变填充背景。由于这只在选项卡页的子控件具有相同背景时才有效,因此选项卡控件作为父级的控件实际上由父级绘制其背景。

Yep, it does not work with Themes. How do I make it work?

你不知道,这就是视觉样式的全部意义。如果您想要对外观进行这种细粒度的控制,您应该禁用特定控件的视觉样式。

您可以使用SetWindowTheme function去做这个。将控制窗口的句柄作为第一个参数传递,并为最后两个参数传递一个空字符串:

SetWindowTheme(hwndCtrl, L" ", L" ");

当然,您必须包含 uxtheme.h 才能调用此函数,并链接到 uxtheme.lib
如果您希望您的应用程序继续在 XP 之前的 Windows 版本(引入主题 API 时)上运行,那么您需要使用延迟加载或 LoadLibraryGetProcAddress 动态调用该函数。

您也可以尝试调用 EnableThemeDialogTexture function并指定 ETDT_DISABLE 标志以禁用应用于选项卡对话框的背景纹理。

关于C 和 Windows API : Changing Color Of Static Controls Which Are Child Of A Tab Control,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5679017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com