我在对话框里加入了一个静态文本框作为选择颜色的标志,
问题是这个文本框的背景颜色不能重绘,如有有遮挡或者最小化等等,颜色就消失了。请问应该怎样重绘这个静态文本框的背景颜色,谢谢。

解决方案 »

  1.   

    OnCtlColor中设置SetBkColor
    或重载CStatic中OnEraseBkgnd
      

  2.   

    在类的成员中定义一个画刷
    CBrush  brushBlack ;在构造中创建画刷
    brushBlack.CreateSolidBrush(RGB(0,0,0));
    使用:
    HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    // TODO: Change any attributes of the DC here
    int ctrid=pWnd->GetDlgCtrlID(); if(ctrid==IDC_STATICMSCNAME)
    {
          return (HBRUSH)brushBlack;
    }
    else
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    return hbr;
    }
    }