pDC->SetBkMode(TRANSPARENT);   if(pWnd==IDC_EDIT1)
{   
return HBRUSH(GetStockObject(RGB(255,0,0)));
}
if(nCtlColor == CTLCOLOR_EDIT )
{   
return HBRUSH(GetStockObject(RGB(0,255,0)));
}
为什么edit1颜色是绿色而不是红色呢?

解决方案 »

  1.   

    pWnd==IDC_EDIT1
    这算啥判断啊?pWnd是窗口指针,IDC_EDIT1是ID号啊,风牛马不相及。
    pWnd == GetDlgItem(IDC_EDIT1)
      

  2.   

    你用
    if (pWnd->GetCtrlID() == IDC_EDIT1)
    这样也可以判断。。
      

  3.   

    欧耶 程序本身是pWnd == GetDlgItem(IDC_EDIT1)的 是我抄过来错的
      

  4.   

    程序本身是pWnd == GetDlgItem(IDC_EDIT1)的 是我抄过来错的  再帮我看看
      

  5.   

      if(pWnd==IDC_EDIT1 && nCtlColor == CTLCOLOR_EDIT )  // 控件和ID都对应到一个控件上
    {  
        pDC->SetBkMode(TRANSPARENT);  
        return HBRUSH(GetStockObject(RGB(255,0,0)));
    }
      

  6.   


    nCtlColor :表示你要修改颜色的控件是  CEdit 
    pWnd  : 你的控件ID;两个同时用有一个好处,当别人看你的代码是nCtlColor == CTLCOLOR_EDIT  就是到你修改的是CEdit 其实:pWnd==IDC_EDIT1 ,这一个条件 就足够啦