MFC消息映射机制详解
2014-09-20 18:56
197 查看
MFC消息映射机制:
在每个能接收和处理消息的类中,定义一个消息与消息处理函数的映射表,即消息映射表。MFC有一个窗口句柄与C++对象指针的映射表,当窗口收到消息时,消息的第一个参数指明了该消息与哪个窗口句柄相关,通过映射表找到C++对象指针,然后将这个指针传递给应用程序框架窗口类的基类,基类调用WindowProc函数(在wincore.cpp文件中),这是一个虚函数,函数内部调用OnWndMsg函数,消息处理就是在这个函数内完成的,该函数也在wincore.cpp中。OnWndMsg函数首先判断窗口类中是否有消息响应函数,首先在子类的头文件中看DECLARE_MESSAGE_MAP()宏之上、两个AFX_MSG注释宏之间是否有消息响应函数原型的声明;然后在子类源文件中看BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()两个宏之间是否有消息映射宏,找到消息响应函数,由此函数对消息进行处理,如果没有找到,则交给基类处理。
MFC消息映射机制:
在每个能接收和处理消息的类中,定义一个消息与消息处理函数的映射表,即消息映射表。MFC有一个窗口句柄与C++对象指针的映射表,当窗口收到消息时,消息的第一个参数指明了该消息与哪个窗口句柄相关,通过映射表找到C++对象指针,然后将这个指针传递给应用程序框架窗口类的基类,基类调用WindowProc函数(在wincore.cpp文件中),这是一个虚函数,函数内部调用OnWndMsg函数,消息处理就是在这个函数内完成的,该函数也在wincore.cpp中。OnWndMsg函数首先判断窗口类中是否有消息响应函数,首先在子类的头文件中看DECLARE_MESSAGE_MAP()宏之上、两个AFX_MSG注释宏之间是否有消息响应函数原型的声明;然后在子类源文件中看BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()两个宏之间是否有消息映射宏,找到消息响应函数,由此函数对消息进行处理,如果没有找到,则交给基类处理。
相关文章推荐
- MFC消息映射机制详解
- VC----MFC消息映射机制详解
- MFC消息映射机制详解
- MFC消息映射机制详解
- MFC消息映射机制详解
- S 串口编程 详解1 串口通信工程SCOMM的建立、MFC消息映射机制
- MFC消息详解
- MFC下CSocket编程详解 (转)
- MFC的CString类详解
- MFC消息详解
- MFC下CSocket编程详解:
- MFC下CSocket编程详解
- MFC类库详解(中文).chm
- MFC数组类CArray的使用的操作详解
- 用MFC开发ActiveX控件详解
- MFC消息详解
- Lesson4 MFC消息映射机制和CDC类的使用 ---孙鑫VC++教程
- 关于MFC下怎样实现内存整理功能!(详解)
- MFC中消息映射机制分析
- 孙鑫VC学习笔记:第四讲 MFC消息映射机制和CDC类的使用