改變對話方塊背景色,對話方塊內文字的顏色與背景色

2021-06-28 06:00:08 字數 1202 閱讀 2077

利用classwizard過載onctlcolor(),即wm_ctlcolor訊息

//改變對話方塊背景色,文字顏色及背景色

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

// todo:  如果預設的不是所需畫筆,則返回另乙個畫筆

return hbr;}

在mfc類庫提供了cwnd::onctlcolor函式,在工作框架的子視窗被重畫時將呼叫該成員函式.因此可以過載wm_ctlcolor訊息的響應函式.此函式的原型:

afx_msg hbrush onctlcolor(cdc *pdc,cwnd *pwnd,uint nctlcolor);

引數nctlcolor用於指定控制項的型別,可以是:

.ctlcolor_btn                               按鈕

.ctlcolor_dlg                               對話方塊

.ctlcolor_edit                              編輯框

.ctlcolor_listbox                        列表控制項

.ctlcolor_msgbox                        訊息控制項

.ctlcolor_scrollbar                   滾動條

.ctlcolor_static                          靜態控制項

為窗體新增該響應訊息,過載onctlcolor函式,下面舉幾個例子說明:

[例1]

為my的對話方塊工程,有乙個static的控制項,id為idc_static1.

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

return hbr;

}如果要指定某個特定控制項可以這樣寫:id為 idc_static1

if (pwnd-> getdlgctrlid()==idc_static1)

else

return hbr;

【注】black_brush:黑色

white_brush:白色

gray_brush:灰色

null_brush:透明

hollow_brush :透明

改變對話方塊的預設背景色

法一在對話方塊的wm paint訊息的響應處理函式onpaint 中進行繪製背景色。法二響應對話方塊的wm ctlcolor訊息,在訊息處理函式onctlcolor中進行繪製。onpaint法 1 新建乙個基於對話方塊的mfc應用程式changebgcolortest1。2 開啟changebgco...

改變MFC對話方塊背景色 控制項

改變mfc對話方塊背景色 控制項內的字型顏色和背景色 中天數字 c 設定 dialog,group box,static text,check box,edit ctrl disabled combo box disabled radio button等背景色 編寫wm ctlcolor訊息的對映函...

如何修改對話方塊的背景色

1 如何改變對話方塊的背景顏色 方法二 過載onpaint 即wm paint訊息。有關 如下 以上例工程為準 void cexampledlgdlg onpaint 方法三 過載 onctlcolor cdc pdc,cwnd pwnd,uint nctlcolor 即wm ctlcolor訊息。...