利用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訊息。...