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