Invalidate();InvalidateRect();InvalidateRgn()使绘图区无效。Invalidate()更新整个绘图区;InvalidateRect(),InvalidateRgn()使部分绘图区无效。
在View中:可用Invalidate();InvalidateRect();InvalidateRgn()使绘图区无效
在DOC中:UpdateAllViews(参CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL );可利用第三个参数传递无效区域,而由于MFC规定,此参数必须是一个Cobject指针,而CRect,CRegion不派生于CObject,所以一个可变通的方法是传递带有无效区信息的CObject派生对象.
/DOC.CPP///
CLine* line;
... ... ... ...
... ... ... ...
UpdateAllViews(null,0L,line);
/VIEW.CPP///
void CTestView::OnUpdate(CView* psender,LPARAM lparam,CObject* pHint)
{
if(pHint!=null)
{
if(pHint->IsKindOf(RUNTIME_CLASS(CLine)))
{
提高绘图效率
最新推荐文章于 2024-05-01 15:54:22 发布
本文介绍了如何在MFC中通过Invalidate()、InvalidateRect()、InvalidateRgn()函数提高绘图效率,以及在Document中使用UpdateAllViews()方法更新视图,并传递无效区域信息。通过创建CLine派生对象作为提示,精确更新绘图区域,避免全屏重绘,从而实现高效绘图操作。
摘要由CSDN通过智能技术生成