【问题标题】:How to check which XP theme is enabled如何检查启用了哪个 XP 主题
【发布时间】:2009-10-28 15:19:54
【问题描述】:

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

第一季度。我需要知道是否启用了经典主题。

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

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

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

【问题讨论】:

    标签: python c windows winapi windows-themes


    【解决方案1】:

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

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

    最后,应用程序唯一的选择是是否尝试支持主题化 - 通过包含一个清单来指定要使用的新公共控件。不包含清单的应用永远不会被主题化。这样做的应用程序将根据用户偏好设置主题。

    【讨论】:

    • 在什么情况下?您想在非主题的应用程序上强制使用主题吗?当用户禁用主题时,您想在应用程序上强制使用主题吗?当系统配置为使用主题 A 时,您想在应用程序上强制使用主题 B?在第一种情况下,您需要为应用程序创建清单。在接下来的两种情况下,这是不可能的(使用文档化的 API)。
    • isAppThemed 在我的情况下总是返回 0,但 IsThemeActive() 似乎有效
    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多