MFC消息循环机制 函数处理 VC
MFC 消息循环机制函数处理 VC MFC 消息循环机制是 Windows 操作系统中非常重要的一部分,它是事件驱动方式工作的核心机制。MFC 消息机制是通过消息泵实现的,消息泵不断地搜索消息队列,将取得的消息分发给应用程序的各个部分进行处理。 消息队列是保存消息的容器,主要目的是提供路由并保证消息的传递。如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。消息循环是消息泵不断搜寻消息队列,将取得的消息分发给应用程序的各个部分进行处理的过程。 消息映射是 MFC 消息机制的核心机制之一,它利用不同的宏将不同的消息和消息处理函数绑定在一起。消息映射包含了一个或多个宏,用以指定哪个函数处理哪个消息。 CCmdTarget 是 MFC 类库中消息映射体系的一个基类。它提供了许多成员函数和一些成员数据,基本上是为了解决消息映射的问题。CCmdTarget 类是 MFC 处理命令消息的基础、核心。 CCmdTarget 类有两个与消息映射有密切关系的成员函数:_AfxDispatchCmdMsg 和 OnCmdMsg。_AfxDispatchCmdMsg 是一个静态函数,用来分发 Windows 消息。OnCmdMsg 是用来传递和发送消息、更新用户界面对象的状态,框架的命令消息传递机制主要是通过该函数来实现的。 CCmdTarget 对 OnCmdMsg 的默认实现是在当前命令目标 (this 所指 ) 的类和基类的消息映射数组里搜索指定命令消息的消息处理函数(标准 Windows 消息不会送到这里处理)。如果找到了一个匹配的消息映射条目,则使用 DispachCmdMsg 调用这个处理函数;如果没有找到,则使用 _GetBaseMessageMap 得到基类的消息映射数组,查找,直到找到或搜寻了所有的基类(到 CCmdTarget )为止;如果最后没有找到,则返回 FASLE 。 每个从 CCmdTarget 派生的命令目标类都可以覆盖 OnCmdMsg,利用它来确定是否可以处理某条命令,如果不能,就通过调用下一命令目标的 OnCmdMsg,把该命令传递给下一个命令目标类进行处理。 MFC 消息机制还提供了许多其他的功能和机制,如命令目标类、命令处理函数、消息映射数组等,它们都是 MFC 消息机制的重要组成部分。 MFC 消息循环机制是 Windows 操作系统中非常重要的一部分,它是事件驱动方式工作的核心机制。它通过消息泵和消息队列实现消息的传递和处理,为应用程序提供了一个强大的消息处理机制。
剩余10页未读,继续阅读
- 粉丝: 2
- 资源: 9
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论2