初始映射

本文详细介绍了MFC框架中的消息映射机制,解释了如何通过映射将不同的消息ID与消息处理函数关联,从而实现高效的消息处理。以WM_PAINT为例,展示了OnPaint()函数如何与CPaintDC对象配合,完成绘图区域的锁定与释放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

映射有很多 最基本的能用到的是MFC的消息映射机制 就是在消息处理函数里面把根据不同的消息ID 和 处理函数地址相关联起来 的就是这个。

映射的概念是:设有一个集合D,若存在一个规则f:使得对任意x属于D根据规则f在Y集合中都有一个唯一确定的元素与之对应

那么称 f:由D到Y为映射,

那么MFC中的映射,中集合D就是消息集合,而Y集合就是消息处理程序

比如WM_PAINT,对应 OnPaint() 是将消息与相应的处理程序函数的地址关联起来 这样比较快 哈

 

其实还是用了 事件 和事件处理程序

 

是这样的 在OnPaint()函数里

我们实例一个CPaintDC对象 因为它的构造函数会自动调用BeginPaint()锁定无效矩形区域

然后OnDraw()然后

析构函数会自动调用EndPaint() 释放对矩形区域的内存锁定

 

假如窗口有一块区域被遮挡 那OS检测到区域无效这个事件 然后将对应的消息

发给窗口消息队列 我们MFC用的C++映射吗 所以就会根据映射函数找到OnPaint()函数地址

并调用它 应该是OS调用的

或者我记得有一个函数可以手动让触发Client整个无效的事件 然后让OS检测到

好像是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值