VS2010 MFC 创建界面时 菜单栏遮盖住了工具栏

guzi19801130 2018-02-16 02:49:42
用VS2010创建MFC界面,当在CMainFrame::OnCreate()函数中不添加如下创建菜单栏语句(注释掉):
if (!m_wndMenuBar.Create(this))
{
TRACE0("未能创建菜单栏\n");
return -1; // 未能创建
}

时,所生成的菜单栏和工具栏是正常

的,如下图:
而当添加以上create语句时,生成的菜单栏掩盖了工具了,如下图:

请问如何调整啊?!!
有熟悉的老师 还请指点一下

...全文
1101 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
guzi19801130 2018-02-21
  • 打赏
  • 举报
回复
问题解决了 出现菜单栏遮盖工具栏的原因是菜单栏和工具栏的停靠设置的不对,具体的解决办法是: 在CFrame.cpp的以下语句中: &&&&&&&&&&&&&&&&&&&&& // TODO: 如果您不希望工具栏和菜单栏可停靠,请删除这五行 m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY); m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT); EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT); //DockPane(&m_wndMenuBar); DockPane(&m_wndToolBar); &&&&&&&&&&&&&&&&&&&&&&&& 对第四句进行注销,而其他语句则保留功能。 这样既可
schlafenhamster 2018-02-19
  • 打赏
  • 举报
回复
有个 函数 调整 bar 的 位置 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
guzi19801130 2018-02-19
  • 打赏
  • 举报
回复
引用 10 楼 schlafenhamster 的回复:
有个 函数 调整 bar 的 位置 RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
好的好的 我试试 谢谢老师
guzi19801130 2018-02-18
  • 打赏
  • 举报
回复
引用 8 楼 schlafenhamster 的回复:
没有 LoadMenu(IDR_MAINFRAME) 函数吗 ?
CMFCMenuBar类中没有LoadMenu()函数的, 哎 不知道菜单栏和工具栏重叠 是什么原因造成的
schlafenhamster 2018-02-18
  • 打赏
  • 举报
回复
你把CMenu 改为 CMFCMenuBar 试试, 应该擦不多
schlafenhamster 2018-02-18
  • 打赏
  • 举报
回复
没有 LoadMenu(IDR_MAINFRAME) 函数吗 ?
guzi19801130 2018-02-18
  • 打赏
  • 举报
回复
引用 6 楼 schlafenhamster 的回复:
你把CMenu 改为 CMFCMenuBar 试试, 应该擦不多
直接换用不了 两个类有些不一样
guzi19801130 2018-02-17
  • 打赏
  • 举报
回复
顶一下 烦请老师们不吝赐教 指点一下
schlafenhamster 2018-02-16
  • 打赏
  • 举报
回复
不需要 if (!m_wndMenuBar.Create(this)) CFrameWnd::OnCreate(lpCreateStruct) 自己 创建 menubar
guzi19801130 2018-02-16
  • 打赏
  • 举报
回复
引用 3 楼 schlafenhamster 的回复:
对话框 才要 自己 创建 memnu // menu if(!m_wndMenu.LoadMenu(IDR_MAINFRAME)) { AfxMessageBox("Failed to create menu bar\n"); return -1; // fail to create } SetMenu(&m_wndMenu);
老师您好 我用的是VS2010 菜单我是用的CMFCMenuBar类 您用的是CMenu类 您上面的方法用不了
schlafenhamster 2018-02-16
  • 打赏
  • 举报
回复
对话框 才要 自己 创建 memnu // menu if(!m_wndMenu.LoadMenu(IDR_MAINFRAME)) { AfxMessageBox("Failed to create menu bar\n"); return -1; // fail to create } SetMenu(&m_wndMenu);
guzi19801130 2018-02-16
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
不需要 if (!m_wndMenuBar.Create(this)) CFrameWnd::OnCreate(lpCreateStruct) 自己 创建 menubar
自己如何创建呢 老师可否能详细指点一下啊

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧