我的代码如下:        COLORREF   color1; CDC* pAdjCDC;
pAdjCDC=m_stc1.GetDC();//m_stc1为CStatic变量 CPen* pen1;
CBrush*  brush1;
brush1=new CBrush(RGB(0,255,0)); pAdjCDC->SelectObject(brush1); pAdjCDC->Rectangle(0,40,80,90);
  但我画出来的东西总是在CStatic控件的下面,不能显示用brush画出来的东西.请问如何才能让画笔画出来的图总是显示在CStatic控件的上面呢?

解决方案 »

  1.   

    在CMYTView::OnPaint() 绘制的.
      

  2.   

    你可以从CStatic 类派生一个子类,重载OnPaint()函数,在其中绘制,然后将你的控件类型重新声明为派生类类型
      

  3.   

    ctrl+w,然后add new class,选择从CStatic派生,并重载此类的OnPaint()函数,代码如下
    void CBox::OnPaint() 
    {
    CPaintDC dc(this); // device context for painting
    if(BkImage)
    {
    RECT rect;
    CBitmap bmp;
    bmp.LoadBitmap(BkImage); CBrush brush;
    brush.CreatePatternBrush(&bmp);
    CBrush* poldbrush=dc.SelectObject(&brush); CPen pen;
    pen.CreatePen(PS_NULL,0,RGB(150,173,232));
    CPen* poldpen=dc.SelectObject(&pen);
    GetClientRect(&rect);
    dc.Rectangle(&rect);
    dc.SelectObject(poldpen);
    dc.SelectObject(poldbrush);
    }
    // Do not call CStatic::OnPaint() for painting messages
    }你可以通过设置BkImage来改变背景
    May you succeed!
    8过记得给分
      

  4.   

    多谢各位的帮助,
    ukyoking(东方不败)和nonocast的建议是对的,但当我想在这个控件上画第二个矩形(这个矩形比原来的小)时,为什么原来的矩形并不消失?