我只知道Onctcolor可以改变Edit背景色,
但是好像是改变所有的,我现在想改某一个
IDC_EDIT1的背景色,该怎么做呢???

解决方案 »

  1.   

    if (pWnd->GetDlgCtrlID()==IDC_EDIT1)
    {
    改变Edit背景色
    }
      

  2.   

    you can do it by overiding the OnPaint function.
    change the Edit's brush
      

  3.   

    sorry,overwrite the function
      

  4.   

    同意cheng_young(古道西风瘦马) ( 所说:
    HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here 
    if(nCtlColor==CTLCOLOR_EDIT)
    {
                     if( pWnd->GetSafeHwnd() == GetDlgItem(IDC_EDIT1)->GetSafeHwnd() )
    pDC->SetTextColor(RGB(255,0,0));//red

    }

    pDC->SetBkColor(RGB(255,192,203));...
    }
      

  5.   

    cheng_young(古道西风瘦马) 
    我试过你的方法了,
    如果第一个EditID号相符
    他就把所有的Edit颜色都改了,
    如果第一个EditID号不相符,
    所有的Edit颜色都不改变
    好像他只判断第一个,其他都不判断,
    怎么办呢,
      

  6.   

    HBRUSH CDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO: Change any attributes of the DC here
    if(nCtlColor==CTLCOLOR_LISTBOX)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_SCROLLBAR)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_EDIT)
    {
    //pDC->SetBkMode(TRANSPARENT);
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(233,233,220));
    HBRUSH b=CreateSolidBrush(RGB(233,233,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_STATIC)
    {
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(160,180,220));
    HBRUSH b=CreateSolidBrush(RGB(160,180,220));
    return b;
    }
    else if(nCtlColor==CTLCOLOR_DLG)
    {
    pDC->SetTextColor(RGB(0,0,0));
    pDC->SetBkColor(RGB(160,180,220));
    HBRUSH b=CreateSolidBrush(RGB(160,180,220));
    return b;
    }
    // TODO: Return a different brush if the default is not desired
    return hbr;
    }
      

  7.   

    NewFree(新自由人) 
    呵呵,NewFree的代码成功了,
    谢谢,也谢谢cheng_young(古道西风瘦马)