怎么清除Onpaint中下次绘制的内容
如何清除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);
}
我写了一个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);
}