读书人

怎么清除Onpaint中下次绘制的内容

发布时间: 2012-12-17 09:31:40 作者: rapoo

如何清除Onpaint中上次绘制的内容
我写了一个CStatic派生类,用于根据不同的输入值,绘制不同的直线,但是绘制第二条直线时,已经绘制的第一条直线仍然存在,Invalidate并没有将第一条直线清除,请问什么原因,如何解决,谢谢~

附关键代码如下:

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

// TODO: Add your message handler code here

// Do not call CStatic::OnPaint() for painting messages


CRect rect;
GetClientRect(&rect);
//dc.FillSolidRect(&rect, RGB(255, 255, 255));


if (i==200)
{
dc.LineTo(100,i);
}

if (i==400)
{
dc.LineTo(100,i);
}

}

void CTest::seti(int m)
{
i=m;
Invalidate(TRUE);
}

调用部分,

CTest m_qq;

void CQqDlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_qq.seti(200);
}

void CQqDlg::OnButton2()
{
// TODO: Add your control notification handler code here
m_qq.seti(400);
}

void CQqDlg::OnButton3()
{
// TODO: Add your control notification handler code here
m_qq.seti(50);
}

读书人网 >VC/MFC

热点推荐