表2.3 默认的标准命令消息处理函数
消息处理函数
CWinApp: : OnFileNew()
CWinApp: : OnFileOpen()
CDocument: :OnFileSave()
CDocutnent: : OnFileSaveAs()
CDocument: :OnFileClose()
CWinApp: : OnFilePrintSetup()
CView: :OnFilePrintPreview()
CView: :OnFilePrint()
CWinApp: :OnAppExit()
CMDIFrameWnd: :OnWindowNew()
CMDIFrameWnd: : OnMDIWindowCmd()
CMDIFrameWnd: :OnMDIWindowCmd()
CMDIFrameWnd: :OnMDIWindowCmd()
CMDIFrameWnd: :OnMDIWindowCmd()
CSplitterWnd: :OnNextPaneCmd()
CSplitterWnd: :OnNextPaneCmd()
CWinApp: : OnHelp()
CWinApp: : OnHelpIndex()
CWinApp: :OnHelpUsing()
CWinApp: :OnContextHelp()
CFrameWnd: : OnUpdateKeyIndicator()
CFrameWnd: : OnUpdateKeyIndicator ()
CFrameWnd: : OnUpdateKeyIndicator ()
以上3类消息中,命令消息是编制应用程序时应用最多的。在Visual C++中有一个Class-
Wizard(类向导),它会帮助用户建立消息映射和消息处理函数的框架,这里的命令消息和函数都
由MFC默认的命名方式命名。
对于命令消息,MFC应用程序框架会通过消息映射机制,按一定的搜索顺序在各个CCmd-
Target类(命令处理类)的派生类中查找对应消息处理函数。所有响应消息或事件的类都是由
CCmdTarget类派生(包括CWinApp、CWnd、CDocument、CView、CFrameWnd、CDocTemplate
等)。在编写程序时应该让命令消息尽可能由与其关系密切的类来处理。尽管消息处理函数可
以任意安放在某一个类中,但如此一来会使可读性降低,同时执行时也可能发生问题。例如,把
与文档有关的消息处理函数放在视图类(CView)中并非不可运行,但可能不会发挥你所希望的
命令 ID
ID_FILE NEW
ID_FILE_OPEN
ID_FILE_SAVE
ID_FILE_SAVE_AS
ID_FILE_CLOSE
ID_FILE_PRINT_SETUP
ID_FILE_PRINT_PREVIEW
ID_FILE_PRINT
ID_APP_EXIT
ID_WINDOW_NEW
ID_WINDOW_ARRANGE
ID_WINDOW_CASCADE
ID_WINDOW_TILE_HORZ
ID_WINDOW_TILE_VERT
ID_NEXT_PANE
ID_PREV_PANE
ID_HELP
ID_HELP_INDEX
ID_HELP_USING
ID_CONTEXT_HELP
.ID_INDICATOR_CAPS
ID_INDICATOR_NUM
ID_INDICATOR_SCRL