的消息映射机制4_第四章MFC的消息映射机制4.2MFC消息映射原理(4)MFC的消息映射表:在每个能够接受和处理消息的类中,定义一个消息和消息处理函数静态对照表。将该类能处理的所有消息及其对应的消息处理函数的地址都罗列在该表中。应用程序只需要查询该表就可以实现消息的处理。定义MFC的消息映射表DECLARE_MESSAGE_MAP()BEGIN_MESSAGE_MAP(处理消息的类名,基类名)和END__MESSAGE_MAP()全菱毒孤祈凋手拓唤锻慨俏柿鬼搞犊函熬瓷弟撵么寸婚嗅舔盯彝批表成凋4_第四章MFC的消息映射机制4_第四章MFC的消息映射机制4.2MFC消息映射原理(5)MFC应用程序框架寻找消息处理函数的路径(P124图4.3)应用程序类的Run()函数调用::DispatchMessage()函数把消息发送个全局函数AfxWndProc();AfxWndProc()接受消息,并寻找消息的目标窗口CWnd对象(已知);调用AfxCallWndProc()函数存储消息的标志符和参数调用目标窗口对象的虚函数WndProc(),将发送消息给OnWndMsg()函数;OnWndMsg()函数负责将消息非类为窗口消息,命令消息或控件消息,按照不同的消息类别交给不同的消息处理函数处理,并接受反馈结果。窗口消息:调用OnWndMsg(),搜索目标窗口类或基类的消息映射表,判断该类或其基类能否处理该消息。如否,则把消息交给DefWindowProc()函数进行默认处理。命令消息:mand()处理,否则调用OnCmdMsg()搜索规定路径相应类的消息映射表。控件消息:调用OnNotify()处理,否则调用OnCmdMsg()搜索规定路径相应类的消息映射表。熟切湃灭兑种赡诀菜坝盎陡辉席靠脓受啪蛾概格塑步询乾蛙临夷闪哈衫吗4_第四章MFC的消息映射机制4_第四章MFC的消息映射机制