多文档 添加菜单栏 工具栏 删除ribbon

VS:vs2010

工程类型:mfc 多文档 office office2007

1、去掉ribbon

在CMainFrame::OnCreate中删除

//m_wndRibbonBar.Create(this);//Delete by psq
//m_wndRibbonBar.LoadFromResource(IDR_RIBBON);

2、添加菜单栏

删除ribbon,有时菜单栏就有了,要显示那个菜单栏

在BOOL 工程名::InitInstance()中修改

pDocTemplate = new CMultiDocTemplate(IDR_MAINFRAME,//前边是什么显示什么,但我好想碰到过显示手边LoadFrame的时候,所以我就保持一致
RUNTIME_CLASS(Coffice2007Doc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(Coffice2007View));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);


// 创建主 MDI 框架窗口
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame || !pMainFrame->LoadFrame(IDR_MAINFRAME))
{
delete pMainFrame;
return FALSE;
}

如果没有可以在CMainFrame::OnCreate中添加

if (!m_wndMenuBar.Create(this))
{
TRACE0("未能创建菜单栏\n");
return -1;      // 未能创建
}
m_wndMenuBar.SetPaneStyle(m_wndMenuBar.GetPaneStyle() | CBRS_SIZE_DYNAMIC | CBRS_TOOLTIPS | CBRS_FLYBY);

// 防止菜单栏在激活时获得焦点
CMFCPopupMenu::SetForceMenuFocus(FALSE);

// 允许用户定义的工具栏操作:和工具栏一其
InitUserToolbars(NULL, uiFirstUserToolBarId, uiLastUserToolBarId);
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);//工具栏
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);//工具栏

3、添加工具栏

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(theApp.m_bHiColorIcons ? IDR_MAINFRAME_256 : IDR_MAINFRAME))
{
TRACE0("未能创建工具栏\n");
return -1;      // 未能创建
}


CString strToolBarName;
bNameValid = strToolBarName.LoadString(IDS_TOOLBAR_STANDARD);
ASSERT(bNameValid);
m_wndToolBar.SetWindowText(strToolBarName);


CString strCustomize;
bNameValid = strCustomize.LoadString(IDS_TOOLBAR_CUSTOMIZE);
ASSERT(bNameValid);
m_wndToolBar.EnableCustomizeButton(TRUE, 126, strCustomize);//126是我自己加的

//添加菜单栏和工具栏可新建一个mfc 多文档 标准的mfc,参考其代码来参加


你可能感兴趣的:(MFC,多文档)