CRect rect;
CPaintDC dc(this);
GetDlgItem(IDC_RECT)->GetWindowRect(rect);
 dc.FillSolidRect(rect,RGB(255,255,255)); //设置为绿色背景
我想先得到IDC_RECT控件的大小,然后再设置窗口的背景色!
但是程序运行出错!

解决方案 »

  1.   

    改变控件背景色是响应WM_CTRLCOLOR消息的,你这样做我还没见过呢
      

  2.   

    HBRUSH XXXXXXXXX::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    switch(nCtlColor)
    {
    case CTLCOLOR_DLG:
    return 你的颜色话刷;
    break;
    default:
    break;
    }
    return hbr;
    }
      

  3.   

    if(nCtlColor == CTLCOLOR_DLG)
       {
       CBrush *brush;
        brush = new CBrush(RGB(20,221,221));
       return (HBRUSH)(brush->m_hObject);
       }你的代码连画刷也没,SelectObject也没你拿什么画啊?