如何检查启用了哪个 XP 主题
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
经典主题更多的是非主题。
您可以通过调用 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.