InvalidateRect()窗口重绘的疑问!
1.建立了一个SDI应用程序,并静态切分视图为命令操作对话框视图和图形显示视图;2.命令操作对话框的视图类,基类为CFormView;图形显示试图类,基类为CView;
需要实现的功能:通过命令操作对话框中的按钮触发,在图形显示视图显示相应的图形;
CRect rect;
rect.left=pView->m_xTranslation-pView->length/2;
rect.right=pView->m_xTranslation+pView->length/2;
rect.top=pView->m_yTranslation+pView->width/2;
rect.bottom=pView->m_yTranslation-pView->width/2;
//首先确定一个矩形区域;
UpdateData(TRUE);//讲控件获得的数据传递给视图类;
this->GetRenderView()->InvalidateRect(&rect,FALSE);
//InvalidateRect函数调用图形显示视图的OnPaint函数重绘窗口,并保持背景不变;
我的目的是动态加入图形,即每触发一次按钮就在图形显示视图中显示出相应的图形,并保证不在下次绘图时被刷新。
可每次触发按钮上次绘制的图形都会随之被刷新没了;
InvalidateRect是将rect指定的矩形区域设置为无效区域并刷新,为什么上次绘的图也会一起被刷新没有了呢?