2009-10-28 45 views
0

我有一個完美的窗口XP主題,但切換到'經典主題'富文本框控制出現沒有邊界的wxPython。我可以爲經典主題啓用邊框,但爲此如何檢查啓用了哪個XP主題

Q1。我需要知道經典主題是否已啓用。

Q2.我也不確定有多少不同的主題可能會破壞我的應用外觀。所以最好的方法是什麼?

Q3。我可以爲給定的應用程序強制執行主題嗎?例如從python我可以加載任何Windows DLL和調用函數,但有沒有這樣的方式?

編輯:在我的情況ctypes.windll.UxTheme.IsThemeActive()工作

回答

1

經典主題化更多的是一種非主題。 通過在UxTheme.dll中調用IsAppThemed()檢查經典主題

因此應該沒有理由擔心不同的主題。

最後,應用程序獲得的唯一選擇是是否嘗試並支持主題 - 通過包含指定使用新的通用控件的清單。不包括清單的應用程序永遠不會是主題。根據用戶偏好設置的應用將以主題爲主題。

+0

但我可以強制一個主題? – 2009-10-28 15:48:57

+0

在什麼情況下? 你想在一個應用程序強制一個主題,這是不受歡迎的? 當用戶禁用主題時,您想強制應用程序中的主題? 當系統配置爲使用主題A時,您想要在應用上強制主題B? 在第一種情況下,您需要爲應用程序創建清單。在接下來的兩種情況下,它是不可能的(有記錄的API)。 – 2009-10-28 18:47:58

+0

isApp主題返回0總是在我的情況下,但IsThemeActive()似乎工作 – 2009-10-29 08:02:30