9512.net
甜梦文库
当前位置:首页 >> IT/计算机 >>

MFC消息响应顺序


查看文章 全面解析 MFC 应用程序中处理消息的顺序(转) 2009-12-19 15:01 C++(VC)编程 1.AfxWndProc() 该函数负责接收消息,找到消息所属的 CWnd 对象,然后调用 AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以 后使用,然后调用 WindowProc()函数 3.WindowProc() 该函数负责发送消息到 OnWndMsg()函数,如果未被处理,则调用 DefWindowProc()函数 4.OnWndMsg() 该函数的功能首先按字节对消息进行排序,对于 WM_COMMAND 消息,调用 OnCommand()消息
响应函数,对于 WM_NOTIFY 消息调用 OnNotify()消息响应函数。任何被遗漏的消息将是一 个窗口消息。 OnWndMsg()函数搜索类的消息映像, 以找到一个能处理任何窗口消息的处理函 数。如果 OnWndMsg()函数不能找到这样的处理函数的话,则把消息返回到 WindowProc()

函数,由它将消息发送给 DefWindowProc()函数 5.OnCommand() 该函数查看这是不是一个控件通知(lParam 参数不为 NULL,如果 lParam 参数为 空的话,说明该消息不是控件通知),如果它是,OnCommand()函数会试图将消息 映射到制造通知的控件;如果他不是一个控件通知(或者如果控件拒绝映射的消 息)OnCommand()就会调用 OnCmdMsg()函数 6.OnCmdMsg() 根据接收消息的类,OnCmdMsg()函数将在一个称为命令传递(Command Routing) 的过程中潜在的传递命令消息和控件通知。例如:如果拥有该窗口的类是一个框 架类,则命令和通知消息也被传递到视图和文档类,并为该类寻找一个消息处理 函数 MFC 应用程序创建窗口的过程 1.PreCreateWindow() 该函数是一个重载函数, 在窗口被创建前, 可以在该重载函数中改变创建参数(可 以设置窗口风格等等) 2.PreSubclassWindow() 这也是一个重载函数,允许首先子分类一个窗口

3.OnGetMinMaxInfo() 该函数为消息响应函数,响应的是 WM_GETMINMAXINFO 消息,允许设置窗口的最 大或者最小尺寸 4.OnNcCreate() 该函数也是一个消息响应函数,响应 WM_NCCREATE 消息,发送消息以告诉窗口的 客户区即将被创建 5.OnNcCalcSize() 该函数也是消息响应函数,响应 WM_NCCALCSIZE 消息,作用是允许改变窗口客户 区大小 6.OnCreate() 该函数也是一个消息响应函数,响应 WM_CREATE 消息,发送消息告诉一个窗口已 经被创建 7.OnSize() 该函数也是一个消息响应函数,响应 WM_SIZE 消息,发送该消息以告诉该窗口大 小已经发生变化 8.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息说明窗口在移动 9.OnChildNotify() 该函数为重载函数,作为部分消息映射被调用,告诉父窗口即将被告知一个窗口 刚刚被创建 MFC 应用程序关闭窗口的顺序(非模态窗口) 1.OnClose() 消息响应函数,响应窗口的 WM_CLOSE 消息,当关闭按钮被单击的时候发送此消 息 [Page] 2.OnDestroy() 消息响应函数,响应窗口的 WM_DESTROY 消息,当一个窗口将被销毁时,发送此 消息 3.OnNcDestroy() 消息响应函数,响应窗口的 WM_NCDESTROY 消息,当一个窗口被销毁后发送此消 息 4.PostNcDestroy() 重载函数,作为处理 OnNcDestroy()函数的最后动作,被 CWnd 调用

MFC 应用程序中打开模式对话框的函数调用顺序 1.DoModal() 重载函数,重载 DoModal()成员函数 2.PreSubclassWindow() 重载函数,允许首先子分类一个窗口 3.OnCreate() 消息响应函数,响应 WM_CREATE 消息,发送此消息以告诉一个窗口已经被创建 4.OnSize() 消息响应函数,响应 WM_SIZE 消息,发送此消息以告诉窗口大小发生变化 5.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息,以告诉窗口正在移动 6.OnSetFont() 消息响应函数,响应 WM_SETFONT 消息,发送此消息,以允许改变对话框中控件 的字体 7.OnInitDialog() 消息响应函数,响应 WM_INITDIALOG 消息,发送此消息以允许初始化对话框中的 控件,或者是创建新控件 8.OnShowWindow() 消息响应函数,响应 WM_SHOWWINDOW 消息,该函数被 ShowWindow()函数调用 9.OnCtlColor() 消息响应函数,响应 WM_CTLCOLOR 消息,被父窗口发送已改变对话框或对话框上 面控件的颜色 10. OnChildNotify() 重载函数,作为 WM_CTLCOLOR 消息的结果发送 MFC 应用程序中关闭模式对话框的顺序 1.OnClose() 消息响应函数,响应 WM_CLOSE 消息,当\"关闭\"按钮被单击的时候,该函数被 调用 2.OnKillFocus() 消息响应函数,响应 WM_KILLFOCUS 消息,当一个窗口即将失去键盘输入焦点以 前被发送

3.OnDestroy() 消息响应函数,响应 WM_DESTROY 消息,当一个窗口即将被销毁时,被发送 4.OnNcDestroy() 消息响应函数,响应 WM_NCDESTROY 消息,当一个窗口被销毁以后被发送 5.PostNcDestroy() 重载函数,作为处理 OnNcDestroy()函数的最后动作被 CWnd 调用 打开无模式对话框的顺序 1.PreSubclassWindow() 重载函数,允许用户首先子分类一个窗口 2.OnCreate() 消息响应函数,响应 WM_CREATE 消息,发送此消息以告诉一个窗口已经被创建 [Page] 3.OnSize() 消息响应函数,响应 WM_SIZE 消息,发送此消息以告诉窗口大小发生变化 4.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息以告诉窗口正在移动 5.OnSetFont() 消息响应函数,响应 WM_SETFONT 消息,发送此消息以允许改变对话框中控件的 字体 以上这些的执行都是按给定的顺序执行! 只有清楚的了解应用程序的执行顺序,才能在编写代码的时候知道,在什么时候 应该执行什么,以及在什么地方该处理什么! 这只是本人总结的一点小小的经验,希望能对 MFC 的初学者有所帮助!MFC 应用 程序中处理消息的顺序 1.AfxWndProc() 该函数负责接收消息,找到消息所属的 CWnd 对象,然后调用 AfxCallWndProc 2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以 后使用,然后调用 WindowProc()函数 3.WindowProc() 该函数负责发送消息到 OnWndMsg()函数,如果未被处理,则调用 DefWindowProc()函数

4.OnWndMsg() 该函数的功能首先按字节对消息进行排序,对于 WM_COMMAND 消息,调用 OnCommand()消息响应函数, 对于 WM_NOTIFY 消息调用 OnNotify()消息响应函数。 任何被遗漏的消息将是一个窗口消息。OnWndMsg()函数搜索类的消息映像,以找 到一个能处理任何窗口消息的处理函数。如果 OnWndMsg()函数不能找到这样的 处理函数的话,则把消息返回到 WindowProc()函数,由它将消息发送给 DefWindowProc()函数 5.OnCommand() 该函数查看这是不是一个控件通知(lParam 参数不为 NULL,如果 lParam 参数为 空的话,说明该消息不是控件通知),如果它是,OnCommand()函数会试图将消息 映射到制造通知的控件;如果他不是一个控件通知(或者如果控件拒绝映射的消 息)OnCommand()就会调用 OnCmdMsg()函数 6.OnCmdMsg() 根据接收消息的类,OnCmdMsg()函数将在一个称为命令传递(Command Routing) 的过程中潜在的传递命令消息和控件通知。例如:如果拥有该窗口的类是一个框 架类,则命令和通知消息也被传递到视图和文档类,并为该类寻找一个消息处理 函数 MFC 应用程序创建窗口的过程 1.PreCreateWindow() 该函数是一个重载函数, 在窗口被创建前, 可以在该重载函数中改变创建参数(可 以设置窗口风格等等) 2.PreSubclassWindow() 这也是一个重载函数,允许首先子分类一个窗口 3.OnGetMinMaxInfo() 该函数为消息响应函数,响应的是 WM_GETMINMAXINFO 消息,允许设置窗口的最 大或者最小尺寸 4.OnNcCreate() 该函数也是一个消息响应函数,响应 WM_NCCREATE 消息,发送消息以告诉窗口的 客户区即将被创建 [Page] 5.OnNcCalcSize() 该函数也是消息响应函数,响应 WM_NCCALCSIZE 消息,作用是允许改变窗口客户 区大小 6.OnCreate() 该函数也是一个消息响应函数,响应 WM_CREATE 消息,发送消息告诉一个窗口已 经被创建

7.OnSize() 该函数也是一个消息响应函数,响应 WM_SIZE 消息,发送该消息以告诉该窗口大 小已经发生变化 8.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息说明窗口在移动 9.OnChildNotify() 该函数为重载函数,作为部分消息映射被调用,告诉父窗口即将被告知一个窗口 刚刚被创建 MFC 应用程序关闭窗口的顺序(非模态窗口) 1.OnClose() 消息响应函数,响应窗口的 WM_CLOSE 消息,当关闭按钮被单击的时候发送此消 息 2.OnDestroy() 消息响应函数,响应窗口的 WM_DESTROY 消息,当一个窗口将被销毁时,发送此 消息 3.OnNcDestroy() 消息响应函数,响应窗口的 WM_NCDESTROY 消息,当一个窗口被销毁后发送此消 息 4.PostNcDestroy() 重载函数,作为处理 OnNcDestroy()函数的最后动作,被 CWnd 调用 MFC 应用程序中打开模式对话框的函数调用顺序 1.DoModal() 重载函数,重载 DoModal()成员函数 2.PreSubclassWindow() 重载函数,允许首先子分类一个窗口 3.OnCreate() 消息响应函数,响应 WM_CREATE 消息,发送此消息以 告诉一个窗口已经被创建 4.OnSize() 消息响应函数,响应 WM_SIZE 消息,发送此消息以告 诉窗口大小发生变化 5.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息,以 告诉窗口正在移动 6.OnSetFont() 消息响应函数,响应 WM_SETFONT 消息,发送此消息, 以允许改变对话框中控件的字体 7.OnInitDialog() 消息响应函数,响应 WM_INITDIALOG 消息,发送此消 息以允许初始化对话框中的控件,或者是创建新控件 8.OnShowWindow() ShowWindow()函数调用 消息响应函数,响应 WM_SHOWWINDOW 消息,该函数被

9.OnCtlColor() 消息响应函数,响应 WM_CTLCOLOR 消息,被父窗口发 送已改变对话框或对话框上面控件的颜色 10. OnChildNotify() 重载函数, 作为 WM_CTLCOLOR 消息的结果发送 [Page] MFC 应用程序中关闭模式对话框的顺序 1.OnClose() 消息响应函数,响应 WM_CLOSE 消息,当\"关闭\"按钮被单 击的时候,该函数被调用 2.OnKillFocus() 消息响应函数,响应 WM_KILLFOCUS 消息,当一个窗口即将 失去键盘输入焦点以前被发送 3.OnDestroy() 消息响应函数,响应 WM_DESTROY 消息,当一个窗口即将被 销毁时,被发送 4.OnNcDestroy() 消息响应函数,响应 WM_NCDESTROY 消息,当一个窗口被销 毁以后被发送 5.PostNcDestroy() 重载函数, 作为处理 OnNcDestroy()函数的最后动作被 CWnd 调用 打开无模式对话框的顺序 1.PreSubclassWindow() 重载函数,允许用户首先子分类一个窗口 2.OnCreate() 消息响应函数,响应 WM_CREATE 消息,发送此消息 以告诉一个窗口已经被创建 3.OnSize() 消息响应函数,响应 WM_SIZE 消息,发送此消息以 告诉窗口大小发生变化 4.OnMove() 消息响应函数,响应 WM_MOVE 消息,发送此消息以 告诉窗口正在移动 5.OnSetFont() 消息响应函数,响应 WM_SETFONT 消息,发送此消息 以允许改变对话框中控件的字体 以上这些的执行都是按给定的顺序执行! 只有清楚的了解应用程序的执行顺序,才能在编写代码的时候知道,在什么时候 应该执行什么,以及在什么地方该处理什么! 这只是本人总结的一点小小的经验,希望能对 MFC 的初学者有所帮助!


赞助商链接

更多相关文章:
MFC中的消息发送与响应
MFC 中的消息发送与响应 1. 主窗口向子窗口发送消息: http://blog.csdn.net/phenixyf/article/details/9300425 从主窗口向子窗口发送消息,可以在子窗口中添加自...
mfc 消息响应机制
3.MFC 的消息实现机制 --- 我们可以看到,在 MFC 的框架结构下,可以进行消息处理的类的头文件里面都会含有 DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息...
MFC消息响应机制
MFC 消息响应机制摘要: 摘要: --- MFC 是 Windows 下程序设计的最流行的一个...MFC消息响应顺序 7页 免费 VC MFC 键盘消息的截取与... 3页 免费 [MFC]消...
MFC双击List消息响应
MFC双击List消息响应 - 很多时候,我们在用CListCtrl创建一个列表时,需要一个双击列表中某一项的操作响应 函数,这时候就需要响应List控件的NM_DBLCLK消息,响应这个...
MFC动态控件添加消息响应
MFC 动态创建控件的消息处理前些天有人在论坛里问在动态创建 TreeCtrl 后怎么...MFC消息响应顺序 7页 免费 在MFC列表控件中实现动态... 8页 免费 MFC消息响应...
ComBoBox消息触发事件
*/ Win32 程序中使用 Combo box 控件分类: VC/MFC 2012-02-17 11:36 91...[0]); return 0 ; case WM_COMMAND: // 处理控件通知消息 switch(LOWORD(...
在VCMFC响应键盘按键
在VCMFC响应键盘按键 - 在 VC/MFC响应键盘按键 时间:2008-12-08 23:42:02 来源:RealGIS 作者:tqx 首先,简介一下键盘消息: (1)系统消息: (...
mfc建立消息响应,绘制随机点随机线条,画刷画矩形
mfc建立消息响应,绘制随机点随机线条,画刷画矩形_法律资料_人文社科_专业资料。...MFC消息响应顺序 7页 免费 MFC-画笔 画刷 字体对象... 1页 1下载券 MFC...
!!!MFC对话框不响应WM_KEYDOWN消息,可以通过重载BOOL P...
!!!MFC对话框不响应WM_KEYDOWN消息,可以通过重载BOOL PreTranslateMessage(MSG pMsg)来实现_计算机软件及应用_IT/计算机_专业资料。对话框不响应 WM_KEYDOWN 消息...
MFC写的贪吃蛇代码
MFC写的贪吃蛇代码 - 手把手教“MFC 版贪吃蛇教程” 写在前面的话 本次贪吃蛇教程主要知识点包括以下几个方面 1 CView 类中的消息响应 2 控件的消息响应 3 ...
更多相关标签:

All rights reserved Powered by 甜梦文库 9512.net

copyright ©right 2010-2021。
甜梦文库内容来自网络,如有侵犯请联系客服。zhit325@126.com|网站地图