Invalidate、RedrawWindow与UpdateWindow的区别

Invalidate()是强制系统进行重画,但是不一定就马上进行重画。因为Invalidate()只是通知系统,此 时的窗口已经变为无效。强制系统调用WM_PAINT,而这个消息只是Post就是将该消息放入消息队列。当执行到WM_PAINT消息时才会对敞口进行重绘。

UpdateWindow只向窗体发送WM_PAINT消息,在发送之前判断GetUpdateRect(hWnd,NULL,TRUE)看有无可绘制的客户区域,如果没有,则不发送WM_PAINT。

RedrawWindow()则是具有Invalidate()和UpdateWindow()的双特性。声明窗口的状态为无效,并立即更新窗口,立即调用WM_PAINT消息处理。

最新文章

  1. Linux 各目录的作用
  2. JavaScript中正则表达式test()、exec()、match() 方法区别
  3. gnuplot 学习笔记
  4. Mac功夫——OS X应用技巧
  5. rpm包安装时发现缺少其他依赖
  6. Boost的自动链接功能
  7. CSS2简写代码(优化)
  8. OpenCV学习 7:图像形态学:腐蚀、膨胀
  9. QT 静态编译后中文可能会出现乱码
  10. SQLServer 错误: 15404,无法获取有关 Windows NT 组 用户
  11. 17.4.3 使用MulticastSocket实现多点广播(2)
  12. 利用wget检测网页是否正常访问
  13. 第一行代码阅读笔记----显示隐式Intent的基本用法
  14. .NET反射简单应用———遍历枚举字段
  15. js方法中拼接html时点击事件中拼接字符串参数
  16. M2阶段事后总结
  17. vscode 的 vue模板
  18. geiUItabBarItem设置图片颜色和title颜色
  19. Android——Android Studio导入SlidingMenu类库的方法
  20. Eavl() 数据绑定格式化时间

热门文章

  1. RTNETLINK answers: File exists错误
  2. GraphChi介绍
  3. elisp语法
  4. 【转】关于Xcode的Other Linker Flags
  5. 使用Core Data应避免的十个错误
  6. HDU 1142 A Walk Through the Forest (求最短路条数)
  7. SaltStack安装Redis模块
  8. POJ 3041 Asteroids (二分图最小点覆盖)
  9. android 脸部抠图
  10. Linux下移植pjsip,使用QT开发