为什么 OpenThemeData(pParent, L"TEXTSTYLE") 在 XP 上失败?

发布于 2024-07-26 00:28:00 字数 505 浏览 4 评论 0 原文

我正在使用主题库绘制一些文本,这些文本在 Windows Vista 上工作得非常好 - 但是,在 Windows XP 上返回的 HTHEME 为 NULL。 这是我正在使用的代码:

HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");

hTheme 在 Vista 上有效,但在 Windows XP 上为 NULL。
我已阅读 OpenThemeData部件和状态,但没有提及 XP 不支持 TEXTSTYLE(甚至谷歌没有提出任何好的建议)。

I'm using the theme library to draw some text which works absolutely fine on Windows Vista - however, on Windows XP the returned HTHEME is NULL. This is the code I'm using:

HTHEME hTheme = ::OpenThemeData(pParent, L"TEXTSTYLE");

hTheme is valid on Vista, but NULL on Windows XP.
I've read the documentation for OpenThemeData and Parts and States on MSDN, but nothing mentions that TEXTSTYLE isn't supported on XP (even Google doesn't throw up any good suggestions).

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

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

发布评论

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

评论(2

柠栀 2024-08-02 00:28:01

主题 Luna(即 Microsoft 制作的随 XP 一起发布的主题)仅定义了 Aero 类的子集和部分(Windows Vista 和 7)。

如果您可以访问运行 Windows XP 和 Vista(或 7)的计算机,您可以预览主题资源管理器实用程序定义的内容:
http://sourceforge.net/projects/mctrl/files/theme-explorer/

The theme Luna (i.e. the Microsoft-made theme distributed with XP) defines only subset of classes and parts of Aero (Windows Vista and 7).

If you have access to machines with Windows XP and Vista (or 7) you may preview what's defined by Theme Explorer utility:
http://sourceforge.net/projects/mctrl/files/theme-explorer/

梦情居士 2024-08-02 00:28:01

我猜你在 XP 上还打开了主题吗? 如果您关闭了“bubblegum”模式 - 即恢复到经典外观,则主题 API 都会失败,并且您需要使用旧版 API 来绘制框架元素。 DrawFrameControl 等。

I presume that on XP you still have theming turned on? If you have turned off "bubblegum" mode - i.e. reverted to the classic look, then the Theming APIs all fail and youre expected to use the legacy APIs to draw the frame elements. DrawFrameControl etc.

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