MFC教程(5)-- MFC对象的创建(1)
2010-03-25 20:33:46 来源:WEB开发网消息映射方法和标准命令消息
窗口对象可以响应以“WM_”为前缀的标准Windows消息,消息处理函数名称以“ON”为前缀。不同类型的Windows窗口处理的Windows消息是有所不同的,因此,不同类型的MFC窗口实现的消息处理函数也有所不同。例如,多文档边框窗口能处理WM_MDIACTIVATE消息,其他类型窗口就不能。程序员从一定的MFC窗口派生自己的窗口类,对感兴趣的消息,覆盖基类的消息处理函数,实现自己的消息处理函数。
所有的命令目标(CCmdTarger或导出类对象)可以响应命令消息,程序员可以指定应用程序对象、框架窗口对象、视对象或文档对象等来处理某条命令消息。一般地,尽量由与命令消息关系密切的对象来处理,例如隐藏/显示工具栏由框架窗口处理,打开文件由应用程序对象处理,数据变化的操作由文档对象处理。
对话框的控制子窗口可以响应各类通知消息。
对于命令消息,MFC实现了一系列标准命令消息处理函数。标准命令ID在afxres.h中定义。表5-5列出了MFC标准命令的实现,从ID或者函数名可以大致地看出该函数的目的、功用,具体的实现有的后续章节会讲解,详细参见MFC技术文档。
程序员可以自己来处理这些标准消息,也可以通过不同的类或从不同的类导出自己的类来处理这些消息,不过最好遵循MFC的缺省实现。比如处理ID_FILE_NEW命令,最好由CWinApp的派生类处理。
表5-5 标准命令消息处理函数
ID |
函数 |
实现函数的类 |
ID_FILE_NEW |
OnFileNew |
CWinApp |
ID_FILE_OPEN |
OnFileOpen |
CWinApp |
ID_FILE_CLOSE |
OnFileClose |
CDocument |
ID_FILE_SAVE |
OnFileSave |
CDocument |
ID_FILE_SAVE_AS |
OnFileSaveAs |
CDocument |
ID_FILE_SAVE_COPY_AS |
OnFileSaveCopyAs |
COleServerDoc |
ID_FILE_UPDATE |
OnUpdateDocument |
COleServerDoc |
ID_FILE_PAGE_SETUP |
OnFilePrintSetup |
CWinApp |
转下页 |
续表 |
||
ID_FILE_PRINT |
OnFilePrint |
CView |
ID_FILE_PRINT_PREVIEW |
OnFilePrintPreview |
CView |
ID_FILE_MRU_FILE1...FILE16 |
OnUpdateRecentFileMenu |
CWinApp |
ID_EDIT_CLEAR |
CView没有实现, |
|
ID_EDIT_CLEAR_ALL |
但是,如果有实现 |
|
ID_EDIT_COPY |
函数,就是派生类 |
|
ID_EDIT_CUT |
CEditView的 |
|
ID_EDIT_FIND |
实现函数 |
|
ID_EDIT_PASTE_LINK |
||
ID_EDIT_PASTE_SPECIAL |
||
ID_EDIT_REPEAT |
||
ID_EDIT_REPLACE |
||
ID_EDIT_SELET_ALL |
||
ID_EDIT_UNDO |
||
ID_WINDOW_NEW |
OnWindowNew |
CMDIFrameWnd |
ID_WINDOW_ARRANGE |
OnMDIWindowCmd |
CMDIFrameWnd |
ID_WINDOW_CASCADE |
||
ID_WINDOW_TILE_HORZ |
||
ID_WINDOW_TILE_VERT |
||
ID_WINDOW_SPLIT |
CSplitterWnd |
|
ID_APP_ABOUT |
||
ID_APP_EXIT |
OnAppExit |
CWinApp |
ID_HELP_INDEX |
OnHelpIndex |
CWinApp |
ID_HELP_USING |
OnHelpUsing |
CWinApp |
ID_CONTEXT_HELP |
OnContextHelp |
CWinApp |
转下页 |
续表 |
||
ID_HELP |
OnHelp |
CWinApp |
ID_DEFAULT_HELP |
OnHelpIndex |
CWinApp |
ID_NEXT_PANE |
OnNextPaneCmd |
CSplitterWnd |
ID_PREV_PANE |
OnNextPaneCmd |
CSplitterWnd |
ID_OLE_INSERT_NEW |
||
ID_OLE_EDIT_LINKS |
||
ID_OLE_VERB_FIRST...LAST |
||
ID_VIEW_TOOLBAR |
CFrameWnd |
|
ID_VIEW_STATUS_BAR |
CFrameWnd |
|
ID_INDICATOR_CAPS ID_INDICATOR_NUM ID_INDICATOR_SCRL ID_INDICATOR_KANA |
OnUpdateKeyIndicator |
CFrameWnd |
更多精彩
赞助商链接