本文一兩個Edit控件為例
第一步:
在主窗口函數(shù)開始處定義變量 CBrush m_brush;和一個全局變量int ColorNUM[2];
第二步:
為窗口類添加OnCtrlColor()函數(shù);添加方法是右鍵窗口類添,選擇Add windows Message Handler......,添加里面的WM_CTLCOLOR;
并對OnCtrlColor()函數(shù)進(jìn)行一下修改:
HBRUSH CR58u5555555Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor,int *a)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
a=ColorNUM;
if(nCtlColor==CTLCOLOR_EDIT)
{switch(pWnd->GetDlgCtrlID())
{
case IDC_EDIT1:
pDC->SetTextColor(RGB(0,0,255));
if(a[0]==1)
pDC->SetBkColor(RGB(0,255,0));
else
pDC->SetBkColor(RGB(255,0,0));
//pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)m_brush;
return hbr;
break;
case IDC_EDIT2:
pDC->SetTextColor(RGB(0,0,255));
if(a[1]==1)
pDC->SetBkColor(RGB(0,255,0));
else
pDC->SetBkColor(RGB(255,0,0));
//pDC->SetBkMode(TRANSPARENT);
hbr=(HBRUSH)m_brush;
return hbr;
break;
default:
break;
}}
return hbr;
}
注意int *a是自己加的,而且還要在窗口頭文件中函數(shù)聲明里自己添加int *a這個參數(shù)。
想要改變背景色,只需給ColorNUM[2]對應(yīng)項賦需要的值即可。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。