簡體   English   中英

使用WinXp通用控件時編輯控件背景色的奇怪行為

[英]Strange behaviour of edit control background color when using WinXp common controls

我遇到一個奇怪的問題(嗯,至少我覺得很奇怪=))。 我正在編寫自己的GUI庫,它是Windows api的包裝(是的,我知道WTL和類似MFC =的框架)。 在當前階段,我已經以這種方式封裝了通用控件:例如,Edit類由一個簡單的窗口和一個位於其上方的標准編輯窗口(MainWindow-> GhostWindow-> EditBox)組成。 例如,這就是我可以如何在編輯類本身內部更改編輯的背景顏色的方法:

myedit->SetBkColor ( RGB ( 0, 0, 0 ) );

它運行良好,直到我調用InitCommonControlsEx並將清單文件附加到程序中。 完成此操作后,我的編輯僅在具有焦點時才能夠更改顏色。 老實說,我對為什么這樣的行為以及我做錯了事沒有全面的想法,所以我將不勝感激。

謝謝#535

  1. 當您附加版本6清單時,不需要調用InitcommonControlsEx。

  2. 無論如何。 加載了版本6的通用控件后,XP主題設置甚至用於標准的Windows控件。 控件的背景色是使用xp主題色繪制的,因此,使用WM_CTLCOLOR *消息較少。

  3. 您當前正在使用WM_CTLCOLOR *消息覆蓋各種控制元素的散熱器嗎?

好吧,一切都比我想的容易得多。 我太不專心=(當不使用樣式時,一根手杖使用:: SetBkColor(...)更改背景顏色,然后從WM_CTLCOLOR *返回畫筆以更改邊框顏色。啟用樣式后,情況將有所不同現在:: SetBkColor(...)對應於焦點顏色,返回的畫筆更改背景顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM