没有合适的资源?快使用搜索试试~ 我知道了~
InvalidateRect,Invalidate,UpdateWindow区别
4星 · 超过85%的资源 需积分: 31 26 下载量 198 浏览量
2011-09-05
21:31:10
上传
评论 1
收藏 18KB DOCX 举报
温馨提示
试读
2页
在编程的时候经常把UpdateData、Invalidate、InvalidateRect和UpdateWindow四个函数混淆,在这里将简单介绍它们的区别
资源推荐
资源详情
资源评论
InvalidateRect(HWND) 使窗口无效 产生消息 WM_PAINT;
ValidateRect(HWND)使窗口有效 清除消息队列中的 WM_PAINT 消息
在编程的时候经常把 UpdateData、Invalidate、InvalidateRect 和 UpdateWindow 四个函数混淆,在这里
将简单介绍它们的区别。
UpdateData():
当你使用了 ClassWizard 建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更
新显示,就应该在修改变量后调用 UpdateData(FALSE);如果你希望知道用户在对话框中到底输入了什
么,就应该在访问变量前调用 UpdateData(TRUE),将控件的输入映射到变量中。
Invalidate():
该函数的作用是使整个窗口客户区无效。窗口的客户区无效意味着需要重绘,例如,如果一个被其它
窗口遮住的窗口变成了前台窗口,那么原来被遮住的部分就是无效的,需要重绘。这时 Windows 会在应
用程序的消息队列中放置 WM_PAINT 消息。MFC 为窗口类提供了 WM_PAINT 的消息处理函数
OnPaint,OnPaint 负责重绘窗口。视图类有一些例外,在视图类的 OnPaint 函数中调用了 OnDraw 函数,
实际的重绘工作由 OnDraw 来完成。参数 bErase 为 TRUE 时,重绘区域内的背景将被擦除,否则,背景
将保持不变。
Invalidate 标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。 Invalidate 只是放
一个 WM_PAINT 消息在队列里,不做别的,所以只有当当前函数返回后,进入消息循环,取出
WM_PAINT,才执行 PAINT,所以不管 Invalidate 放函数哪个地方,(作用相当于)都是(放在)最后的
(但并不是推荐你一律放在函数最后一行)。
InvalidateRect():
该函数的功能与 Invalidate 基本一样,不同的是,它是使指定的某个区域无效,需要输入一个区域。
UpdateWindow():
UpdateWindow( )的作用是使窗口立即重绘。调用 Invalidate 等函数后窗口不会立即重绘,这是由于
WM_PAINT 消息的优先级很低,它需要等消息队列中的其它消息发送完后才能被处理。调用
UpdateWindow 函数可使 WM_PAINT 被直接发送到目标窗口,从而导致窗口立即重绘。
只将窗口显示区域标记为无效以产生 WM_PAINT 消息,对于某些应用程序来说也许不是完全令人满意的
选择。在呼叫 InvalidateRect 之后,Windows 将 WM_PAINT 消息放入消息队列中,最后由窗口消息处理
程序处理它。然而,Windows 将 WM_PAINT 消息当成低优先级消息,如果系统有许多其它的动作正在发
生,那么也许会让您等待一会儿工夫。这时,当对话框消失时,将会出现一些空白的「洞」,程序仍然等
待更新它的窗口。
如果您希望立即更新无效区域,可以在呼叫 InvalidateRect 之后呼叫 UpdateWindow:
UpdateWindow (hwnd) ;
如果显示区域的任一部分无效,则 UpdateWindow 将导致 Windows 用 WM_PAINT 消息呼叫窗口消息处
理程序(如果整个显示区域有效,则不呼叫窗口消息处理程序)。这一 WM_PAINT 消息不进入消息队列,
资源评论
- Mabox2013-03-26介绍的非常详细
- 惜君Iris2013-12-22介绍的挺详细,谢谢楼主。。代码需要自己修改
- hellowuhan2013-07-19资源不错 能免积分的话 就更好了 还是谢楼主分享
frankiehang
- 粉丝: 1
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功