InvalidateRect函数 InvalidateRect(...)在刷新的时候先发出WM_PAINT消息在根据参数来确定刷新区域如果参数为 NULL 就刷新整个区域 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要刷新,就需要WM_PAINT消息,这样理解的话,InvalidateRect会发出WM_PAINT消息就很正常了。而刷新的区域大小,就由参数进行限制了,避免了大部分情况下的全屏刷新,以免造成闪烁。 InvalidateRect不会发出WM_PAINT消息。这个函数的功能,是将一个矩形添加到目标窗口的更新区域中。而当一个窗口的消息队列空闲,同时窗口的更新区域不是空的话,系统就像这个窗口发送一个WM_PAINT消息。这里面的区别是:如果多次调用InvalidateRect,更新区域可能会合并。如果调用InvalidateRect之后又调用ValidateRect,可以将矩形从更新区域中去除,因此,可能就没有后续的WM_PAINT消息了。如果要在InvalidateRect之后马上刷新窗口,那就需要调用UpdateWindow,显然这样降低了绘图效率。另外,InvalidateRect矩形指针为NULL的话,窗口的更新区域为整个客户区而不是空。 用过geos的请进 [求助]如何给DateTimePicker设置日期时间 对话框的销毁!? 如何给CGrid Ctrl控件添加打印预览功能? 请各位给推荐几本DirectDraw 的书籍吧,我在VC6下使用 VC下如何进行UNICODE和ANSI字符串的转换~转换函数的用法~还有比较两个字符串大小的函数和用法~速来抢分~ 如何编写Windows服务程序。 关于HTMLVIEW建立多进程浏览器 看在美女的份上---Help me!!! 我用ATL做了个simple object,怎么调试? SEH异常处理和筛选器异常处理的优先级别? 如何检测USB Key的插拔事件
而刷新的区域大小,就由参数进行限制了,避免了大部分情况下的全屏刷新,以免造成闪烁。
如果多次调用InvalidateRect,更新区域可能会合并。
如果调用InvalidateRect之后又调用ValidateRect,可以将矩形从更新区域中去除,因此,可能就没有后续的WM_PAINT消息了。
如果要在InvalidateRect之后马上刷新窗口,那就需要调用UpdateWindow,显然这样降低了绘图效率。另外,InvalidateRect矩形指针为NULL的话,窗口的更新区域为整个客户区而不是空。