欢迎来到天天文库
浏览记录
ID:39466201
大小:45.50 KB
页数:7页
时间:2019-07-04
《MFC中的消息路由》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MFC中的消息路由2010-12-2112:07windows中的消息虽然很多,但是种类并不繁杂,大体上有3种:窗口消息、命令消息和控件通知消息。 窗口消息大概是系统中最为常见的消息,它是指由操作系统和控制其他窗口的窗口所使用的消息。例如CreateWindow、DestroyWindow和MoveWindow等都会激发窗口消息,还有我们在上面谈到的单击鼠标所产生的消息也是一种窗口消息。 命令消息,这是一种特殊的窗口消息,他用来处理从一个窗口发送到另一个窗口的用户请求,例如按下一个按钮,他就会向主窗口发送一个命令消息。 控件通知消息,是指这样一种消息,一个窗口
2、内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。她类似于命令消息,当用户与控件窗口交互时,那么控件通知消息就会从控件窗口发送到它的主窗口。但是这种消息的存在并不是为了处理用户命令,而是为了让主窗口能够改变控件,例如加载、显示数据。例如按下一个按钮,他向父窗口发送的消息也可以看作是一个控件通知消息;单击鼠标所产生的消息可以由主窗口直接处理,然后交给控件窗口处理。 其中窗口消息及控件
3、通知消息主要由窗口类即直接或间接由CWND类派生类处理。相对窗口消息及控件通知消息而言,命令消息的处理对象范围就广得多,它不仅可以由窗口类处理,还可以由文档类,文档模板类及应用类所处理。 mfc的消息传递时从子类开始,如果子类没有,再寻找父类的消息处理函数MFC程式的消息处理顺序MFC,顺序,程序MFC程式实际运用中处理消息的顺序1.AfxWndProc() 该参数负责接收消息,找到消息所属的CWndobject,然后调用AfxCallWndProc2.AfxCallWndProc() 该参数负责保存消息(保存的CONTENT内容主要是消息标识符和消息参数)
4、供程式实际运用以后实际运用,然后调用WindowProc()参数3.WindowProc() 该参数负责发送消息到OnWndMsg()参数,如果未被处理,则调用DefWindowProc()参数4.OnWndMsg() 该参数的功能首先按字节对消息停止排序,对于WM_comMAND消息,调用OnCommand()消息响应参数,对于WM_NOTIFY消息调用OnNotify()消息响应参数。任何被遗漏的消息将是唯一窗口消息。OnWndMsg()参数Search类的消息映像,以找到唯一能处理任何窗口消息的处理参数。如果OnWndMsg()参数无所不能
5、找到那样的处理参数的话,则把消息返回到WindowProc()参数,由它将消息发送给DefWindowProc()参数5.OnCommand() 该参数查看这也许则唯一控件通知(lParam参数不为NULL,如果lParam参数为空的话,说明该消息否则控件通知),如果它是,OnCommand()参数会试图将消息映射到制造通知的控件;如果他否则唯一控件通知(或者如果控件拒绝映射的消息)OnCommand()就会调用OnCmdMsg()参数6.OnCmdMsg() 根据接收消息的类,OnCmdMsg()参数将在唯一称为命令传递(CommandRou
6、ting)的过程中潜在的传递命令消息和控件通知。例如:如果拥有该窗口的类是唯一框架类,则命令和通知消息也被传递到视图和文档类,并为该类寻找唯一消息处理参数MFC程式实际运用创建窗口的过程1.PreCreateWindow() 该参数是唯一重载参数,在窗口被创建前,没去外国疑问在该重载参数中改变创建参数(没去外国疑问设置窗口风格等等)2.PreSubclassWindow()这也是唯一重载参数,允许首先子分类唯一窗口3.OnMinMaxInfo() 该参数为消息响应参数,响应的是WM_GETMINMAXINFO消息,允许设置窗口的最大或者最小尺寸4.OnNcCre
7、ate() 该参数也是唯一消息响应参数,响应WM_NCCREATE消息,发送消息以告诉窗口的区即将被创建5.OnNcCalcSize() 该参数也是消息响应参数,响应WM_NCCALCSIZE消息,功能是允许改变窗口区大小6.OnCreate() 该参数也是唯一消息响应参数,响应WM_CREATE消息,发送消息告诉唯一窗口已经被创建7.OnSize() 该参数也是唯一消息响应参数,响应WM_SIZE消息,发送该消息以告诉该窗口大小已经除了变化8.OnMove() 消息响应参数,响应WM_
此文档下载收益归作者所有