CChildFrame和CMainFrame关系

1、CMainFrame是主窗口的框架
2、CChildFrame是每个子窗口的框架
3、CMainFrame包含CChildFrame

把所有的Child关闭以后剩下就是CMainframe。而打开的所有窗口都是CChildFrame

补充:

CView它也是一个窗口,具体对于CChildFrame的客户区。
其实CChildFrame也是一个框架,不过是个子框架,在它里面就是View.
CChildFrame主要在MDI框架中发挥作用。而在单文档下之所以没有CChildFrame的原因就是View直接就是CMainFrame的客户区

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MFC多文档编程中,可以通过以下步骤来使用一个按钮打开一个子窗口: 1. 首先,在主窗口类(一般是CMainFrame)的头文件中添加一个成员变量,用于保存子窗口对象的指针。例如,声明一个成员变量CChildFrame* m_pChildFrame。 2. 在主窗口类的初始化函数OnInitInstance()中创建子窗口对象。可以使用CreateNewWindow()函数来创建子窗口。例如,m_pChildFrame = (CChildFrame*)RUNTIME_CLASS(CChildFrame)->CreateObject(); 3. 在主窗口类的消息映射中添加一个响应按钮点击事件的函数。例如,添加一个响应按钮点击事件的函数OnOpenChildWindow()。 4. 在响应按钮点击事件的函数OnOpenChildWindow()中,使用m_pChildFrame->ActivateFrame()来激活并显示子窗口。例如, void CMainFrame::OnOpenChildWindow() { if (m_pChildFrame != nullptr) { m_pChildFrame->ActivateFrame(); } } 5. 在主窗口的视图类(一般是CView或者CMDIChildWnd)中创建一个按钮对象。可以使用Create()函数创建按钮,并设置位置、样式和文字等属性。例如, BOOL CMyView::CreateButton() { CRect rectButton(10, 10, 110, 40); m_btnOpenChild.Create(_T("打开子窗口"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, rectButton, this, IDC_OPEN_CHILD_BUTTON); return TRUE; } 6. 在主窗口的视图类中添加一个响应按钮点击事件的消息映射。例如, ON_BN_CLICKED(IDC_OPEN_CHILD_BUTTON, CMyView::OnOpenChildWindow) 7. 在响应按钮点击事件的函数OnOpenChildWindow()中,调用主窗口类的函数来打开子窗口。例如, void CMyView::OnOpenChildWindow() { CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd(); pMainFrame->OnOpenChildWindow(); } 通过以上步骤,就可以在MFC多文档编程中使用一个按钮来打开一个子窗口了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值