命令消息--ID_APP_EXIT整理
来源:互联网 发布:土佐之梦 知轩藏书 编辑:程序博客网 时间:2024/04/29 02:15
引申:
在MFC中消息有三种类型
标准消息:
1、除WM_COMMAND之外,所有以WM_开头的消息。
2、从CWnd派生的类,都可以接收到这类消息。
命令消息:
1、来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数识别。
2、从CCmdTarget派生的类,都可以接收到这类消息。
通告消息:
1、由控件产生的消息,例如,按钮的单击,列表框的选择等均产生此类消息,为的是向其父窗口(通常是对话框)通知事件的发生。这类消息也是以WM_COMMAND形式呈现。
2、从CCmdTarget派生的类,都可以接收到这类消息。
至于哪些类是从CWnd类派生出来的呢?我们可以把它的类名复制下来,在MSDN上搜索一下,就可以看到它所继承的父类,就能判断它是否从CWnd类派生。工具栏,控件等都是从CWnd类派生的类。
在一个单文档MFC程序中,CMainFrame类与View类是从CWnd类派生出来的,而App类和Doc类则不是从CWnd类派生出来的,但它们都派生自CCmdTarget类。而CWnd类也是从CCmdTarget类派生而来。
菜单属于框架窗口类,点击菜单下的按钮时,会先到View类中查找相关的消息处理函数,若找不到,就把消息传送给Doc类。若在Doc类中找不到相关的消息处理函数,Doc类会把消息返转给View类,由View类来作处理。此时View类会把消息传给CMainFrm类,若在CMainFrm类中还是找不到相关的消息处理函数,同样CMainFrm类会把消息返转给View类,由View类来作处理。最后,View类会把消息传给App类,让App类来处理该消息。
=====================================================================
转载地址:http://www.cnblogs.com/pythonschool/archive/2013/03/12/2956147.html
用户从“文件”菜单选择执行“退出”时,将发送MFC命令消息ID_APP_EXIT。
MFC实现的函数CWinApp::OnAppExit()完成对该命令消息的缺省处理。
各个文件路径:C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\src\mfc,该路径下可找到各个文件打开
CWinApp::OnAppExit()定义在文件afxwin.h中第4676行
protected: //{{AFX_MSG(CWinApp) afx_msg void OnAppExit(); afx_msg void OnUpdateRecentFileMenu(CCmdUI* pCmdUI); afx_msg BOOL OnOpenRecentFile(UINT nID); //}}AFX_MSG DECLARE_MESSAGE_MAP()
CWinApp::OnAppExit()消息映射在文件appcore.cpp中33行中
BEGIN_MESSAGE_MAP(CWinApp, CCmdTarget) //{{AFX_MSG_MAP(CWinApp) // Global File commands ON_COMMAND(ID_APP_EXIT, &CWinApp::OnAppExit) // MRU - most recently used file menu ON_UPDATE_COMMAND_UI(ID_FILE_MRU_FILE1, &CWinApp::OnUpdateRecentFileMenu) ON_COMMAND_EX_RANGE(ID_FILE_MRU_FILE1, ID_FILE_MRU_FILE16, &CWinApp::OnOpenRecentFile) //}}AFX_MSG_MAPEND_MESSAGE_MAP()CWinApp::OnAppExit()实现在文件appui.cpp中第19行
void CWinApp::OnAppExit(){ same as double-clicking on main window close box ASSERT(m_pMainWnd != NULL); m_pMainWnd->SendMessage(WM_CLOSE);}因此,命令消息ID_APP_EXIT实际上就是主框架发送了一个WM_CLOSE消息
0 0
- 命令消息--ID_APP_EXIT整理
- ID_APP_EXIT
- 命令整理
- Windows消息操作整理
- 消息队列再整理
- Linux消息队列整理
- umeng push 消息整理
- js消息对话框整理
- vi命令整理(整理中)
- windows消息收集(整理中)
- Windows 消息大全归类整理
- 消息队列再整理二
- 命令整理mvn,maven命令整理
- 命令消息路由
- 命令消息WM_COMMAND
- 命令消息传递
- MFC消息/命令/通知
- juce命令消息处理
- iOS 自定义tabBar
- load和get的区别分析
- Linux下查看文件内容的命令
- weka基础:weka.core
- Ajax与HTML5 history pushState/replaceState实例
- 命令消息--ID_APP_EXIT整理
- 网络操作与AFNetworking
- 二、微信企业号开发:corpsecret到底在哪块呢
- SWT布局
- Active Learning 主动学习
- linux下dns设置详解
- 代理模式深入学习(一)——动态代理的实现及解析
- LeetCode 题解(252) : Find the Duplicate Number
- 四大配置管理工具测评手记