博客
关于我
WM_PAINT 与 WM_ERASEBKGND消息的深入分析
阅读量:661 次
发布时间:2019-03-16

本文共 575 字,大约阅读时间需要 1 分钟。

  1. 当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会使无效区域变得有效)
  2. 当WM_PAINT消息是由InvalidateRect函数产生的时候,如果函数的bErase参数为TRUE,则BeginPaint函数察觉需要擦除背景则发送一个WM_ERASEBKGND消息(后面处理和1一样),如果为FLASE则不发送WM_ERASEBKGND消息。
    总结:如果说WM_ERASEBKGND消息是由BeginPaint函数产生的是不对的(得分情况处理)

转载地址:http://xscqz.baihongyu.com/

你可能感兴趣的文章
java 中介者模式(大话设计模式)
查看>>
微机原理 6-计算机中常用的数制
查看>>
2.5 实际电源的两种模型及其等效变换
查看>>
MCS51 程序存储器(ROM)
查看>>
web访问ejb测试 详解
查看>>
window系统下安装使用curl命令工具
查看>>
假如计算机是中国人发明的,那代码应该这么写
查看>>
神器 Codelf !
查看>>
趣图:会算法和不会算法的区别
查看>>
一行代码就能解决的智力算法题
查看>>
区块链会2020再次爆发,先学点DAPP压压惊,跟我一起学《区块链DApp入门实战》
查看>>
问题解决41:单元测试 verify 使用的时候,验证一个函数执行了多少次,验证出现参数不一致情况
查看>>
问题解决28:微信网页授权出现redicet_uri 参数错误
查看>>
App的启动过程(2)framework侧-恢复最上层的Activity
查看>>
LeakCanary 中文使用说明
查看>>
反转链表,(5)
查看>>
Camera (api1)的打开过程
查看>>
勒索软件一季度报告:只有8%的赎金换回了数据
查看>>
wxwidgets绘图
查看>>
wxwidgets事件处理
查看>>