MDI中MainFrame与ChildFrame的关系

在MDI(多文档界面)应用程序中,MainFrame主要负责显示菜单和工具栏。当没有ChildFrame时,显示MainFrame的界面元素。一旦创建了ChildFrame(如打开文件),ChildFrame会覆盖MainFrame的菜单和工具栏,并且通常包含事件处理。子窗口的事件处理如OnMouseDown通常在与其绑定的View中响应。MFC MDI程序包括一个应用程序对象和一个主窗口,窗口类遵循特定的继承结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值