void CT1View::OnPaint() //一个按钮
{
CPen pen,*op;
CDC *pDC;
pDC=GetDC();
pen.CreatePen(PS_SOLID,2,RGB(0,255,0));
op=pDC->SelectObject(&pen);
pDC->MoveTo(100,100);
pDC->LineTo(100,300);
pen.Detach();
ReleaseDC(pDC);
}
通过以上代码我在视图的客户区画了条线,但是当我将视图刷新时(改变窗口的大小等)时,程序画的线就没有了。如何才能让自己画的东西能够在刷新之后仍能正确的显示。另外又如何用程序使在OnDraw()函数中画的东西从视图中清除掉呢?

解决方案 »

  1.   

    void CTestView::OnPaint() 
    {
    CPaintDC dc(this); // device context for painting

    // TODO: Add your message handler code here
    CPen pen,*op;
    CDC *pDC;
    pDC=&dc;
    pen.CreatePen(PS_SOLID,2,RGB(0,255,0));
    op=pDC->SelectObject(&pen);
    pDC->MoveTo(100,100);
    pDC->LineTo(100,300);
    pen.Detach();
    ReleaseDC(pDC);
    // Do not call CView::OnPaint() for painting messages
    }
    伙计啊,将这段代码,放在你的程序里吧! 试一试!
      

  2.   

    不要使用void CT1View::OnPaint() 
    把你的代码写到 void CT1View::OnDraw() 里面即可。