不二法门:熟记MFC类层次结构。经常使用的主要MFC类:CWinApp, CWnd<-CView, CWnd<-CFrameWnd, CFrameWnd<-CMDIFrameWnd, CFrameWnd<-CMDIChildWnd, CWnd<-CDialog, CWnd<-CControlBar, CControlBar<-CStatusBar, CControlBar<-CToolBar, CCmdTarget<-CDocument, CCmdTarget<-CDocTemplate, CDocTemplate<-CMultiDocTemplate。
工具栏是将某些菜单栏以按钮的形式呈现出来,由一点热键的味道。所谓状态栏,是主窗口下面所显示的文字区。
在MFC中,CDocument可以简单的理解成是数据,CView是CDocument的表现,是界面,负责与使用者接触,是与使用者交谈的接口。
每一个数据都由数据的表现(CView)呈现,而View需要放到一个外框窗口中才能显示(CMDIChildWnd)。这三个对象由所谓的Document Template来管理(CMultiDocTemplate对象)。
Document是数据的主体,通过View来观察Document,View是Document对外显示的接口。Document可以对应多个View,并且View可以看到Document的全部,也可以看到部分。View不能直接显示,必须要显示在所谓Document Frame窗口中(CMDiChildWnd对象)。
某些消息处理函数需要自定义去处理对应消息,而其它一些消息处理函数则十分标准,使用MFC已经定义好的即可,如CWinApp::OnFileNew, CWinApp::OnFileOpen等。
当有文档打开时使用一种菜单,当没有文档打开时使用另一种菜单,菜单替换的工作有MFC自动完成。