MFC单文档项目固定对话框

本文介绍如何在MFC单文档项目中集成多个对话框。通过将对话框设置为子窗口样式,并继承CDialogBar基类,可以实现在项目内集成多个对话框的功能。此外,还提供了实例代码展示如何在MainFrm类中实例化并定位这些对话框。

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

MFC单文档项目是一个空白的显示区,开发者可以通过设计对话框然后固定到具体显示区,通过组合的形式可以做到集成多个对话框在一个项目里。下面笔者提供一个样例来说明如何做,供读者参考学习,交流。

第一步:先设计对话框,需要注意的是对话框的属性栏里面的style要设置为child,border设置为none,最重要的是要把对话框继承的基类改为CDialogBar,把BEGIN_MESSAGE_MAP的第二个参数也替换为CDialogBar

第二步:在MainFrm中声明一个对话框对象, 这里以笔者的为例,CDBRight   m_wndDBRight,在MainFrm.cpp的OnCreate函数中给设计的对话框实例化,主要代码如下:

if (!m_wndDBarRight.Create(this,IDD_DIALOG_DBARRIGHT,
        CBRS_RIGHT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
        IDD_DIALOG_DBARRIGHT))
    {
        TRACE0(_T("创建DBarRight失败!"));
        return -1;
    }

// TODO: 如果不需要可停靠工具栏,则删除这三行
    /*m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    DockControlBar(&m_wndToolBar);*/

ps:注释这一段是为了让对话框悬停在ToolBar下,使得窗口美观

如果想悬停在其他位置的话可以通过修改m_wndDBarRight.Create的CBRS_RIGHT参数即可如果在左就是LEFT,下就是BOTTOM,上就是TOP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值