在onctlcolor中加入如下代码 想改变edit1背景为红色 其他为绿色pDC->SetBkMode(TRANSPARENT); if(pWnd == GetDlgItem(IDC_EDIT1))
{
return HBRUSH(GetStockObject(RGB(255,0,0)));//红色
}
if(nCtlColor == CTLCOLOR_EDIT )
{
return HBRUSH(GetStockObject(RGB(0,255,0)));//绿色
}
为什么edit1颜色也是绿色而不是红色呢?
改成用控件ID来判断试试
if (pWnd->GetDlgCtrlID() == IDC_EDIT1)
{
COLORREF clr = RGB(255,0,0);
pDC-> SetBkColor(clr); //设置黑色的背景
hbr = ::CreateSolidBrush(clr);
return hbr; //作为约定,返回背景色对应的刷子句柄
}
if(nCtlColor == CTLCOLOR_EDIT )
{
COLORREF clr = RGB(0,255,0);
pDC-> SetBkColor(clr); //设置黑色的背景
hbr = ::CreateSolidBrush(clr);
return hbr; //作为约定,返回背景色对应的刷子句柄
}
->
改用ID判断或者用HWND窗口句柄来判断
e.g
if(pWnd->GetSafeHwnd() == GetDlgItem(IDC_EDIT1)->GetSafeHwnd())