2013-11-27 51 views
1

你好,我想改變按鈕的背景顏色。這裏是我的代碼按鈕更改使用Createwindow命令創建的按鈕的背景顏色

hwndTemp = CreateWindow(TEXT("BUTTON"), Str("Settings"), 
    WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_TEXT|BS_PUSHBUTTON|WS_CLIPSIBLINGS, 
    0, 0, 0, 0, hwndMain, (HMENU)ID_SETTINGS, 0, 0); 
SendMessage(hwndTemp, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), TRUE); 

有3個或4個更多的按鈕,我想將更改應用到他們每個人。他們都有不同的(HMENU)名稱。

+0

您是否使用COMCTL V6和主題繪畫?如果是這樣,那麼你不再準備好控制你的按鈕顏色。你需要自己畫按鈕。 –

+0

對不起,但我不知道comctl32 v6 .. – user3012804

+1

我認爲你將需要了解這一點。 –

回答

4

原生Windows的按鈕控件沒有可更改的背景顏色屬性。而WM_CTLCOLORBTN不起作用(並且從未工作過)。您可以使用BS_OWNERDRAW樣式或更新的NM_CUSTOMDRAW消息自定義按鈕的外觀。這不像設置背景顏色那麼簡單:您必須繪製整個按鈕。

有這些技術在CodeProject好幾個例子:

http://www.codeproject.com/Articles/3269/Native-Win32-Theme-aware-Owner-draw-Controls-witho

http://www.codeproject.com/Articles/12340/CImageButtonWithStyle-Buttons-using-Images-with-XP

相關問題