如何检查启用了哪个 XP 主题

发布于 2024-08-08 18:46:30 字数 310 浏览 8 评论 0原文

我有一个 wxPython,它可以在 Windows XP 主题上完美运行,但在切换到“经典主题”时,富文本 cntrl 会出现无边框。我可以为经典主题启用边框,但对于

Q1。我需要知道是否启用了经典主题。

Q2.我也不确定有多少不同的主题可能会破坏我的应用程序外观。那么解决这个问题的最佳方法是什么?

Q3。我可以为给定的应用程序强制执行主题吗?例如,从Python我可以加载任何Windows DLL并调用函数,但是有这样的方法吗?

编辑:在我的情况下 ctypes.windll.UxTheme.IsThemeActive() 有效

I have a wxPython which works perfectly on window xp theme but on switching to 'classic theme' rich text cntrl comes up without border. I can enable border for classic theme but for that

Q1. I need to know if classic theme is enabled.

Q2.I am also not sure how many different theme could be there which may break my app appearance. so what could be the best way to go around it?

Q3. Can I enforce a theme for given application? e.g. from python I can load any windows DLL and call functions, but is there any such way?

Edit: in my case ctypes.windll.UxTheme.IsThemeActive() worked

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

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

发布评论

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

评论(1

未央 2024-08-15 18:46:30

经典主题更多的是非主题。
您可以通过调用 IsAppThemed( )在 UxTheme.dll 中

因此应该没有理由担心不同的主题。

最后,应用程序获得的唯一选择是是否尝试支持主题化 - 通过包含指定要使用新通用控件的清单。不包含清单的应用程序永远不会成为主题。这样做的应用程序将根据用户的喜好进行主题化。

Classic theming is more of a non theme.
You check for classic theming by calling IsAppThemed() in UxTheme.dll

There should therefore be little reason to worry about different themes.

Lastly, the only choice applications get is whether to try and support theming or not - by including a manifest specifying that the new common controls are to be used. Apps that don't include the manifest will never be themed. Apps that do, will be themed as per the users preferences.

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