hur.cn - 华软网

 热门搜索

问下InvalidateRect作用

  作者:未知    来源:网络    更新时间:2011/9/19
代码
void CleoView::OnDraw(CDC* pDC)
{
CleoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
RECT rect;
rect.bottom=10;
rect.left=0;
rect.right=10;
rect.top=0;
InvalidateRect(&rect);
pDC->TextOutW(100,100,L"haha");
pDC->TextOutW(300,300,L"heihei");
  ValidateRect(&rect);
// TODO: 在此处为本机数据添加绘制代码

}

我上次发表了这个问题,但是上次没表示清楚!
我想问的是执行到InvalidateRect(&rect);  会产生WM_PAINT 消息, 这是是跳转到执行WM_PAINT 消息,还是顺着代码执行
pDC->TextOutW(100,100,L"haha");呢?  

这次表达清楚了 
---华软 网友回答---
The invalidated areas accumulate in the update region until the region is processed when the next WM_PAINT message occurs or until the region is validated by using the ValidateRect or ValidateRgn function. 

The system sends a WM_PAINT message to a window whenever its update region is not empty and there are no other messages in the application queue for that window. 

If the bErase parameter is TRUE for any part of the update region, the background is erased in the entire region, not just in the specified part. 

---华软网友回复---
显示执行完这个模块,然后再到WM_PAINT中
---华软网友回复---
引用 1 楼 visualeleven 的回复:
The invalidated areas accumulate in the update region until the region is processed when the next WM_PAINT message occurs or until the region is validated by using the ValidateRect or ValidateRgn func……

还是MSDN 能帮助人啊···  哈哈哈哈哈 感谢      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。