我有一個奇怪的問題(當然,至少我覺得奇怪=))。我正在編寫我自己的GUI庫,這是一個圍繞Windows API的包裝(是的,我知道WTL和框架如MFC =))。在當前階段,我用這種方式封裝了常用控件:例如,Edit類由一個簡單的窗口和一個位於其上的標準編輯窗口(MainWindow - > GhostWindow - > EditBox)組成。這就是我能夠例如修改編輯的背景顏色的編輯類本身裏面:使用WinXp常用控件編輯控件背景色的奇怪行爲
myedit->SetBkColor (RGB (0, 0, 0));
它工作得很好,直到我叫INITCOMMONCONTROLSEX並附清單文件到我的計劃。做完這些之後,我的編輯只有在專注時才能夠改變顏色。說實話,我沒有一個全面的想法,爲什麼這樣做,我做錯了什麼,所以我會感謝任何幫助。
謝謝#535。
1.哦,謝謝你,我不知道。 2.確定,但有沒有辦法讓控制行爲更具體,我的目標是做出控制,當我將鼠標懸停在它上面時,可以改變背景,然後當鼠標光標離開時改變回來。使用winXp主題,是默認的舊式按鈕是非常難看的。 3.是的。 – n535 2009-10-26 06:47:19
除了使控制完全自定義繪畫我做不相信它有可能覆蓋xp-theme顏色的控件背景顏色。 我曾經研究過的一件事實際上是製作一組主題數據,並使用主題apis加載它作爲當前應用主題。我相信它不可能創建新的系統主題,因爲uxtheme.dll只會加載簽名(由MS)主題文件,我不知道這是否適用於每個應用程序主題。 (假設這種事情甚至是可能的)。 – 2009-10-26 09:15:14
MSDN中的「視覺樣式參考」既有前途又有前途:有很多API用於處理各種主題數據,但沒有明顯的方法來生成自己的主題數據。它基本上*看起來只不過是一個描述ux-theme如何在內部設置繪圖標準窗口控件的大量文檔。 – 2009-10-26 09:27:16