(1)没有子窗口ChildFrame(包括视图)时,显示的是主窗口MainFrame的菜单及工具栏.
(2)如果用户新建了一个视图(如打开一个文件),则显示的是子窗口ChildFrame的菜单及工具栏,而主窗口
MainFrame的菜单及工具栏被子窗口ChildFrame覆盖了.
(3)主窗口有菜单,工具栏,一般似乎没有事件处理(如OnMouseDown等). 而子窗口一般有事件处理,如
OnMouseDown()等(可在view中响应,因为ChildFrame与view已绑定在一起了,形成"三口组").
而一个最简单的MFC的MDI程序,也应有一个应用程序对象和一个窗口:
CMFC_frameApp theApp;//应用程序对象
CMainFrame* m_pMainWnd;//一个主窗口(可响应事件,如OnMouseDown)
(4)窗口类继承关系(从子到父):
CChildFrame ->CMDIChildWnd------->CFrameWnd->CWnd->CCmdTarget.
CMainFrame ->CMDIFrameWnd------->CFrameWnd->CWnd->CCmdTarget.
另:CMyView -> CView------------------------->CWnd
CMyDoc-> CDocument----------------------------->CCmdTarget
CMyApp->CWinApp->CWinThread-------------------->CCmdTarget
在MDI(多文档界面)应用程序中,MainFrame主要负责显示菜单和工具栏。当没有ChildFrame时,显示MainFrame的界面元素。一旦创建了ChildFrame(如打开文件),ChildFrame会覆盖MainFrame的菜单和工具栏,并且通常包含事件处理。子窗口的事件处理如OnMouseDown通常在与其绑定的View中响应。MFC MDI程序包括一个应用程序对象和一个主窗口,窗口类遵循特定的继承结构。
748

被折叠的 条评论
为什么被折叠?



