如何改變介面和非按鈕控制項的背景顏色

2021-04-19 08:09:29 字數 958 閱讀 5559

改變介面的背景顏色和改變非按鈕控制項的背景顏色的道理是一樣的,都是在wm_ctlcolor訊息的響應函式onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor) 中來改變畫刷。

1.首先在建構函式(或者是oninitdialog函式,負責初始化的函式,也就是在畫刷被用到之前對畫刷進行初始化都行)中初始化畫刷:

cmyclass::cmyclass(cwnd* pparent/* = null*/)

: cdialog(autosetup::idd, pparent)

}afx_data_init 

//設定背景色

backcolor = rgb(10, 160, 230);

editboxcolor=rgb(255,255,255);

buttoncolor=rgb(10,50,230);

m_backbrush.createsolidbrush(backcolor);

m_editboxbrush.createsolidbrush(editboxcolor);

m_buttonbrush.createsolidbrush(buttoncolor);

}2.新增訊息對映,以使得有重畫訊息發出時可以到相應的函式裡面執行我們想要的操作

begin_message_map(autosetup, cdialog)

//}afx_msg_map

end_message_map()

3.在wm_ctlcolor訊息的響應函式onctlcolor(...)中隨心所欲地改變畫刷

hbrush cmyclass::onctlcolor(cdc* pdc, cwnd* pwnd, uint nctlcolor)

// todo: return a different brush if the default is not desired

return hbr;//返回畫刷

}

改變控制項的背景顏色和字型顏色

在預設情況下,我們看到的對話方塊及其控制項的背景和字型顏色都是淺灰色的,為了美化介面我們可以使用mfc中的wm ctlcolor訊息,它的響應函式是cwnd類的onctlcolor.該函式宣告如下 afx msg hbrush onctlcolor cdc pdc,cwnd pwnd,uint nc...

CSS 按鈕懸停時改變其邊框和背景

今天在學習css3時,看到了乙個比較有趣的效果 按鈕有背景色,滑鼠懸停時,背景色變為白色,並且有和原來背景色一樣的邊框。在vscode上自己碼 時發現了問題 懸停時會影響的其他元素的位置,即按鈕之後的元素,會在滑鼠懸停在按鈕時,位置向下移動。經過檢查發現,因為我的按鈕邊框是在懸停效果時加的,在css...

如何在VC中改變控制項的背景色

2000 01 30 00 00 yesky 提要 在vc程式設計中要改變控制項 諸如cview,cframewnd,or cwnd等 的背景色可通過處理特定的訊息來實現。但如果想改變按鈕的顏色,就只能使用自繪製的按鈕 也可以用位圖按鈕,此處未做說明 而不能通過onctlcolor 改變。正文 一 ...