在ResourceView里,双击Toolbar,双击IDR_MAINFRAME,
就出现了工具条编辑界面,默认的最右边那个灰按钮就是用来添加新按钮的,
双击它,会d出对话框让你给新按钮取个ID,取完后关掉对话框
就会多出一个按钮,你可以在这个界面下给按钮画下简单的图案
pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMyScrollViewDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CMyScrollViewView))这个函数将文档类视类和框架类结合在一起,这个是单文档的组织形式,所以在单文档中框架类始终没有改变,所以可以动态加载菜单;
pDocTemplate = new CMultiDocTemplate(IDR_questionTYPE,
RUNTIME_CLASS(CquestionDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CquestionView))而这个是多文档的组织形式,可以看到第三个参数变成了CChildFrame,而不是CMainFrame,第一个参数也有所改变看,所以每新建一个多文档就会对应一个CChildFrame,所以动态添加的菜单不会显示在CMainFrame上,多文档不共用框架类
第一个工具栏:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP |
CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar")
return -1 // fail to create
}
m_wndToolBar.SetWindowText(_T("标准工具栏"))
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY)
EnableDocking(CBRS_ALIGN_ANY)
DockControlBar(&m_wndToolBar)
第二个工具栏:
if (!m_wndExtendBar.CreateEx(this, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP |
CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndExtendBar.LoadToolBar(IDR_EXTEND_BAR))
{
TRACE0(_T("Failed to create extend toolbar"))
return -1
}
m_wndExtendBar.SetWindowText(_T("扩展工具栏"))
m_wndExtendBar.EnableDocking(CBRS_ALIGN_ANY)
CRect rect
m_wndExtendBar.GetWindowRect(&rect)
rect.OffsetRect(1, 0)
this->RecalcLayout() //关键的一步,重新排列
DockControlBar(&m_wndExtendBar, AFX_IDW_DOCKBAR_TOP, &rect)
注:第二个工具栏CreateEx必须写在第一个工具栏CreateEx之后,否则还是两行。
MFC并列显示多个工具栏(Toolbar)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)