WM_PAINT 与 WM_ERASEBKGND消息的深入分析
2024-09-08 06:55:53
- 当WM_PAINT消息不是由函数InvalidateRect产生的时(即通过最大话,最小化,移动,下拉菜单等),系统会先产生连续产生若干个WM_ERASEBKGND消息,紧接着在产生WM_PAINT消息。
如果程序没有自己处理WM_ERASEBKGND消息则默认由函数DefWindowProc函数处理(此函数使用在注册窗口类时使用的画刷擦除无效区域wndclass.hbrBackground
)函数返回FLASE,如果程序自己处理WM_ERASEBKGND消息则返回TRUE。
紧接着程序处理WM_PAINT消息,函数BeginPaint的参数PAINTSTRUCT结构(绘制信息结构)的fErase字段的值取决于WM_ERASEBKGND消息的返回,如果此消息返回FLASE,则fErase字段的值TRUE,否则为Flase。(函数BeginPaint会使无效区域变得有效) - 当WM_PAINT消息是由InvalidateRect函数产生的时候,如果函数的bErase参数为TRUE,则BeginPaint函数察觉需要擦除背景则发送一个WM_ERASEBKGND消息(后面处理和1一样),如果为FLASE则不发送WM_ERASEBKGND消息。
总结:如果说WM_ERASEBKGND消息是由BeginPaint函数产生的是不对的(得分情况处理)
最新文章
- Android开发学习之路-Android Studio开发小技巧
- Linux rpm 命令参数使用详解[介绍和应用]
- Save vtkImageData to BMP Image 保存vtkImageData为图片
- hdu4508 完全背包,湫湫系列故事——减肥记I
- Android 响应webview中图片的点击事件
- 支持向量机(SVM)算法的matlab的实现
- HBase 4、Phoenix安装和Squirrel安装
- ps入门教程:裁剪工具、修复画笔工具、图章工具的使用
- 13树莓派手动安装Home Assistant
- 实现mypwd和mybash
- C# 简单实现直线方程,抛物线方程
- layui(五)——form组件常见用法总结
- 调用微信的扫一扫功能详解说明---(java 排坑版)
- ELK+MySQL出现大量重复记录问题处理
- MPLAB X IDE V4.15 创建工程,编译,问题处理
- linux文件句柄数
- linux之无公网ip的自动登录
- VC++使用MapFileAndCheckSum完成自检测
- Linux修改/etc/profile配置错误command is not found自救方法
- CProgressCtrl进度条控件实现进度滚动效果
热门文章
- 开发C语言的3款神器,VS2019、VScode和IntelliJ Clion
- 【Makefile】2-Makefile的介绍及原理
- PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 凌宸1642
- HarmonyOS三方件开发指南(16)-VideoCache 视频缓存
- web编辑工具 - Brackets - 强大免费的开源跨平台Web前端开发工具IDE
- OGG-集成模式抽取与数据库参数streams_pool_size关系
- RocketMq(一)初识
- Spring Cloud Alibaba(4)---Nacos(注册中心)
- Mysql之读写分离架构-Atlas
- Day09_47_Map