我在cview上显示了一张dib位图,然后又在其上面画几个方框标识这张图。但有些方框却画不出来,这是为什么?以下上程序。
        CClentDC *clientDC = new CClientDC(pView)//pView 就是CView对象。
CRgn reign;
CBrush brush( RGB(0,0,255) ); reign.CreateRectRgn(120,135,150,150);
clientDC->FrameRgn ( &reign,&brush,2,2);
reign.DeleteObject(); reign.CreateRectRgn(240,120,270,135);
clientDC->FrameRgn ( &reign,&brush,2,2);
reign.DeleteObject(); reign.CreateRectRgn(240,150,270,165);
clientDC->FrameRgn ( &reign,&brush,2,2);
reign.DeleteObject(); reign.CreateRectRgn(210,0,240,15);
clientDC->FrameRgn ( &reign,&brush,2,2);
reign.DeleteObject(); reign.CreateRectRgn(240,135,270,150);
clientDC->FrameRgn ( &reign,&brush,2,2);
reign.DeleteObject();
delete clientDC;

解决方案 »

  1.   

    在OnDraw(CDC* pDC)函数里画可以,我帮你试过:         CClientDC *clientDC = new CClientDC(this);//pView 就是CView对象。
    CRgn reign;
    CBrush brush( RGB(0,0,255) ); reign.CreateRectRgn(120,135,150,150);
    clientDC->FrameRgn ( &reign,&brush,2,2);
    reign.DeleteObject(); reign.CreateRectRgn(240,120,270,135);
    clientDC->FrameRgn ( &reign,&brush,2,2);
    reign.DeleteObject(); reign.CreateRectRgn(240,150,270,165);
    clientDC->FrameRgn ( &reign,&brush,2,2);
    reign.DeleteObject(); reign.CreateRectRgn(210,0,240,15);
    clientDC->FrameRgn ( &reign,&brush,2,2);
    reign.DeleteObject(); reign.CreateRectRgn(240,135,270,150);
    clientDC->FrameRgn ( &reign,&brush,2,2);
    reign.DeleteObject();
    delete clientDC;
      

  2.   

    最好在ondraw里面画。其他地方,有可能被你误擦除了。
      

  3.   

    在OnDraw函数里画,不然被OnDraw函数覆盖了