首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

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

2012-12-17 
如何清除Onpaint中上次绘制的内容我写了一个CStatic派生类,用于根据不同的输入值,绘制不同的直线,但是绘制

如何清除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);
}

热点排行