具體步驟:
1,為所要改變顔色的對話框類添加WM_CTLCOLOR消息函數。
2,把你原來添加消息函數的代碼改成如下:
HBRUSH CEX06aDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor==CTLCOLOR_DLG||CTLCOLOR_STATIC) //CTLCOLOR_DLG 和CTLCOLOR_STATIC 為你要改變的控件ID,一定是ID啊
{
pDC->SetTextColor(RGB(0,0,0));//設定文本背景色
pDC->SetBkColor(RGB(213,229,243));//設定目前的背景色
HBRUSH B=CreateSolidBrush(RGB(213,229,243));//設定對話框背景色
return B;//傳回剛才建立的背景刷子
}
//TODO:如果預設的不是所需畫筆,則傳回另一個畫筆
return hbr;
}
附加:在MSDN中,關于參數nCtlColor,取以下值:
nCtlColor
Contains one of the following values, specifying the type of control:
· CTLCOLOR_BTN Button control
· CTLCOLOR_DLG Dialog box
· CTLCOLOR_EDIT Edit control
· CTLCOLOR_LISTBOX List-box control
· CTLCOLOR_MSGBOX Message box
· CTLCOLOR_SCROLLBAR Scroll-bar control
· CTLCOLOR_STATIC Static control