MFC单文档生成多个CMFCToolbar时需要解决的问题
2018-03-15 15:50
344 查看
1. 单文档默认生成的工具栏只有一个,但很多时候我们需要添加多个工具栏,比如:
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndCalibrateToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndDrawToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndFileToolBar);
DockPane(&m_wndCalibrateToolBar);
DockPane(&m_wndDrawToolBar);
这不是我们想要的样子,我们希望能把这三个工具栏并排在一起这样可以节省很多空间,比如:
这时候我们需要改变下代码
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndDrawToolBar);
DockPaneLeftOf(&m_wndCalibrateToolBar, &m_wndDrawToolBar);
DockPaneLeftOf(&m_wndFileToolBar, &m_wndCalibrateToolBar);
先让最后一个绘图工具栏DockPane(&m_wndDrawToolBar);然后我们调用函数DockPaneLeftOf()依次往m_wndDrawToolBar的左边停靠
2. 系统默认生成的工具栏只有一个,所以文件菜单里的视图->工具栏和停靠窗口 的子菜单也只有系统默认生成的一个菜单项,就算我们的所有工具栏都显示上去了但是系统不会自动给我们添加到子菜单项,比如:
这时候就需要我们在创建工具栏时做处理:
看到有什么不同了吗,没错就是给他们加上一个ID,否则的话三个工具栏都是使用相同的ID所以显示不出来,因为三个相同的ID都占用了同一个子菜单项,看看修改后的样子:
3. 如果你觉得不需要 文件菜单里的视图->工具栏和停靠窗口 的子菜单里的 自定义... 项可以把
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);
改为
EnablePaneMenu(TRUE, 0, strCustomize, ID_VIEW_TOOLBAR);
m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndCalibrateToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndDrawToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndFileToolBar);
DockPane(&m_wndCalibrateToolBar);
DockPane(&m_wndDrawToolBar);
这不是我们想要的样子,我们希望能把这三个工具栏并排在一起这样可以节省很多空间,比如:
这时候我们需要改变下代码
EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndDrawToolBar);
DockPaneLeftOf(&m_wndCalibrateToolBar, &m_wndDrawToolBar);
DockPaneLeftOf(&m_wndFileToolBar, &m_wndCalibrateToolBar);
先让最后一个绘图工具栏DockPane(&m_wndDrawToolBar);然后我们调用函数DockPaneLeftOf()依次往m_wndDrawToolBar的左边停靠
2. 系统默认生成的工具栏只有一个,所以文件菜单里的视图->工具栏和停靠窗口 的子菜单也只有系统默认生成的一个菜单项,就算我们的所有工具栏都显示上去了但是系统不会自动给我们添加到子菜单项,比如:
这时候就需要我们在创建工具栏时做处理:
看到有什么不同了吗,没错就是给他们加上一个ID,否则的话三个工具栏都是使用相同的ID所以显示不出来,因为三个相同的ID都占用了同一个子菜单项,看看修改后的样子:
3. 如果你觉得不需要 文件菜单里的视图->工具栏和停靠窗口 的子菜单里的 自定义... 项可以把
EnablePaneMenu(TRUE, ID_VIEW_CUSTOMIZE, strCustomize, ID_VIEW_TOOLBAR);
改为
EnablePaneMenu(TRUE, 0, strCustomize, ID_VIEW_TOOLBAR);
相关文章推荐
- win7 系统64位 在ivisual studio 2010下运行mfc单文档项目时生成失败出现“fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏”的解决办法
- eclipse中javadoc文档的生成及解决“编码 EUC_CN 的不可映射字符”问题
- 解决eclipse生成工程doc文档报错问题
- 在新复制的MFC Visual C++项目中不能自动生成代码问题的解决
- 在MFC中生成数据源过程中所遇到的问题及解决(如有错误,请指出)
- 解决OFFICE文档控件在生成图表时频繁报错的问题
- 【解决问题】〖软件应用〗将PDF文件页面分割为多部分生成新文档的方法
- java_javadoc 生成项目文档(设置编码解决中文乱码问题)
- MFC中修改dockpane的位置生成的程序却没有生效的问题解决
- 解决vs2008生成的程序安装文件需要安装.net framework 3.5的问题
- 关于多文档MFC从xp系统上移植到win7上出现错误的问题解决经验
- [MFC]解决单文档创建Dock窗口出现DockPane()未定义问题
- ubuntu15.04下eclipse生成java文档注释及乱码问题解决
- 解决cmd 运行javadoc生成文档时gbk字符问题
- 解决java动态生成html文档为乱码的问题
- 解决:生成api文档出现的编码GBK的不可映射字符的问题
- 解决SharePoint2010打开文档需要重复验证登录问题
- 解决android生成doc文档,找不到符号报错问题
- STM32 cubeMX 前期项目未生成部分模块,后期需要添加功能模块时出现L6218E错误问题的解决方法
- 利用jasperreports报表生成pdf文档中文不能显示问题解决方法