VS2010中调整工具栏图标导致菜单栏的高度变更的问题

Xavier-Lam 2014-03-21 12:00:08

如图 本人加大了工具栏以后菜单栏的高度和工具栏一起变大了 我希望菜单栏高度还是原来的16 要如何设置(m_wndMenuBar.SetHeight设置以后会出现字被遮挡的情况)

这是我的OnCreate代码
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
return -1;

BOOL bNameValid;
// 基于持久值设置视觉管理器和样式
OnApplicationLook(theApp.m_nAppLook);


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);

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(IDR_MAINFRAME_TOOLBAR))
{
TRACE0("未能创建工具栏\n");
return -1; // 未能创建
}

if (!m_wndStatusBar.Create(this))
{
TRACE0("未能创建状态栏\n");
return -1; // 未能创建
}
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndMenuBar);
DockPane(&m_wndToolBar);

// 启用 Visual Studio 2005 样式停靠窗口行为
CDockingManager::SetDockingMode(DT_SMART);

// TODO: 定义您自己的基本命令,确保每个下拉菜单至少有一个基本命令。
CList<UINT, UINT> lstBasicCommands;

lstBasicCommands.AddTail(ID_FILE_NEW);
lstBasicCommands.AddTail(ID_FILE_OPEN);
lstBasicCommands.AddTail(ID_FILE_SAVE);
lstBasicCommands.AddTail(ID_FILE_PRINT);
lstBasicCommands.AddTail(ID_APP_EXIT);
lstBasicCommands.AddTail(ID_EDIT_CUT);
lstBasicCommands.AddTail(ID_EDIT_PASTE);
lstBasicCommands.AddTail(ID_EDIT_UNDO);
lstBasicCommands.AddTail(ID_APP_ABOUT);
lstBasicCommands.AddTail(ID_VIEW_STATUS_BAR);
lstBasicCommands.AddTail(ID_VIEW_TOOLBAR);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2003);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_VS_2005);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLUE);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_SILVER);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_BLACK);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_OFF_2007_AQUA);
lstBasicCommands.AddTail(ID_VIEW_APPLOOK_WINDOWS_7);



return 0;
}
...全文
335 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2014-04-23
  • 打赏
  • 举报
回复
向立天 2014-04-23
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
Xavier-Lam 2014-03-22
  • 打赏
  • 举报
回复
解决了 参见 http://forums.codeguru.com/showthread.php?459423-How-can-I-have-seperate-icons-for-both-the-CMFCMenuBar-and-the-CMFCToolBar 在17-20行之间加上一句 m_wndMenuBar.SetMenuSizes(CSize(40,24),CSize(16,16)); 尺寸可以自行调整
第1章 界面外观   实例1 带图标的菜单   实例2 显示倾斜文字   实例3 文字的颜色渐变   实例4 设置并叠加透明图片   实例5 颜色渐变进度条   实例6 透明窗体  第2章 界面与图像控制   实例7 调色程序   实例8 颜色下拉框   实例9 模拟拷贝进程   实例10 通用对话框   实例11 窗体分割   实例12 实现QQ程序的抽屉效果   实例13 以动画方式弹出/关闭窗口   实例14 半透明窗体   实例15 获得指定点颜色   实例16 判知图片的大小   实例17 图片的伸缩显示   实例18 游览大图   实例19 放大局部图形   实例20 屏幕抓图   实例21 裁剪位图   实例22 填充区域图像   实例23 列表项的提示条   实例24 浮动的鼠标提示   实例25 控制工具栏的按钮组   实例26 工具栏上设置下拉按钮   实例27 使窗体保持在最前   实例28 模仿Windows任务栏   实例29 定义光标热区   实例30 拖放选对象  第3章 多媒体控制   实例31 调节系统音量   实例32 控制混音效果   实例33 播放WAV文件   实例34 再现Windows的CD播放器   实例35 小解霸VCD典型控制   实例36 播放rm文件  第4章 时间控制   实例37 文字逐个出现模仿打字   实例38 嵌入式电子钟   实例39 程序嵌入日历   实例40 毫秒级的控制   实例41 读写系统时间   实例42 同步网络时间  第5章 操作系统与硬件   实例43 编写屏保程序   实例44 屏蔽系统热键和隐藏任务栏   实例45 动态调整屏幕分辨率   实例46 获取系统硬件信息   实例47 编辑注册表信息   实例48 重启动和关闭计算机   实例49 获取Windows版本号和运行模式   实例50 枚举可用字体  第6章 程序控制   实例51 向导程序   实例52 系统托盘程序   实例53 隐藏程序不被关闭程序发现   实例54 枚举系统正在运行的程序   实例55 启动并控制其他Exe程序   实例56 禁止运行程序多个实例   实例57 禁止窗体右上角各按钮   实例58 多线程方式同时进行多项任务   实例59 线程优先级示例——赛马   实例60 利用剪贴板实现Exe程序间的数据交换   实例61 通过内存映射实现Exe程序间的数据交换   实例62 通过消息机制实现Exe程序间的数据交换  第7章 磁盘文件   实例63 获取驱动器序列号   实例64 获取磁盘空间数据   实例65 判别并定位到光驱(软驱)   实例66 递归法遍历磁盘目录   实例67 获得文件属性   实例68 删除不为空的目录   实例69 快速检索指定文件   实例70 拷贝、删除和移动文件   实例71 读写INI文件   实例72 读写大块资料(二进制)文件   实例73 文件变更通知  第8章 数据库   实例74 格式化数字   实例75 文大写数字   实例76 存取图像字段   实例77 ADO控制Access数据库   实例78 SQL语句设置时段检索条件   实例79 SQL语句设置字符串检索条件   实例80 SQL语句设置多个字符串检索条件   实例81 SQL语句嵌套   实例82 代码控制链接ODBC  第9章 网络与通信   实例83 获取网卡地址   实例84 获得主机名和IP地址   实例85 端口扫描   实例86 判断网址是否有效   实例87 枚举局域网内计算机   实例88 连续批量Ping测试   实例89 设置IE的标题   实例90 收发送电子邮件   实例91 FTP上传下载   实例92 网络聊天:WINSOCK-TCP   实例93 广播信息:WINSOCK-UDP   实例94 电话拨号上网  第10章 数学算法   实例95 进制转换   实例96 随机选号   实例97 统计英文字符数  第11章 鼠标和键盘   实例98 鼠标位置追踪   实例99 代码控制光标   实例100 模拟鼠标的单双击   实例101 模拟键盘输入   实例102 限定鼠标区域   实例103 截获鼠标移开事件   实例104 截获键盘信息  第12章 程序发布   实例105 产生程序序列号   实例106 建立一个快捷方式   实例107 设置程序为自动被执行   实例108 注册与卸载OCX   实例109 限定程序的使用时限   实例110 在IE工具栏加入快捷图标
目录 第一章 1·带图标的菜单 2·显示倾斜文字 3·文字的颜色渐变 4·设置并叠加透明图片 5·颜色渐变进度条 6·透明窗体 第二章 7·调色程序 8·颜色下拉框 9·模拟拷贝进程 10·通用对话框 11·窗体分割 12·实现QQ程序的抽屉效果 13·以动画方式弹出,关闭窗口 14·半透明窗体 15·获得指定点颜色 16·判知图片大小 17·图片的伸缩显示 18·浏览大图 19·放大局部图形 20·屏幕抓图 21·裁剪位图 22·填充区域图象 23·列表项的提示条 24·浮动的鼠标提示 25·控制工具栏的按钮组 26·工具栏上设置下拉按钮 27·使窗体保持在最前 28·模仿windows任务拦 29·定义光标热区 30·拖放选对象 第三章 31·调节系统音量 32·控制混音效果 33·播放WAV文件 34·再现windows的CD播放器 35·小解霸--VCD经典控制 36·播放rm文件 第四章 37·文字逐个出现模仿打字 38·嵌入式时钟 39·程序嵌入日历 40·毫秒级的控制 41·读写系统时间 42·同步网络时间 第五章 43·编写屏保程序 44·屏蔽系统热键和隐藏任务拦 45·动态调整屏幕分辨率 46·获取系统硬件信息 47·编辑注册表信息 48·重启动和关闭计算机 49·获取windows版本号和运行模式 50·枚举可用字体 第六章 51·向导程序 52·系统托盘程序 53·隐藏程序不被关闭程序发现 54·枚举系统正在运行的程序 55·启动并控制其他exe程序 56·禁止运行程序多个实力 57·禁止程序右上角各按钮 58·多线程方式同时进行多项任务 59·线程优先级示例==赛马 60·利用剪贴板实现exe程序间的数据交换 61·通过内存映射实现exe程序间的数据交换 62·通过消息机制实现exe程序间的数据交换 第七章 63·获取驱动器序列号 64·获取磁盘空间数据 65·判别并定位到光驱(软驱) 66·嫡归法遍历磁盘目录 67·获得文件属性 68·删除不为空的目录 69·快速检索指定文件 70·拷贝,删除和移动文件 71·读写INI文件 72·读写大块资料(二进制) 73·文件变更通知 第八章 74·格式化数字 75·文大写数字 76·存取图象字段 77·ADO控制access数据库 78·SQL语句设置时段检索条件 79·SQL语句设置字符串检索条件 80·SQL语句设置多个字符串检索条件 81·SQL语句嵌套 82·代码控制链接ODBC 第九章 83·获取网卡地址 84·获得主机名和IP地址 85·端口扫描 86·判断网址是否有效 87·枚举局域网内计算机 88·连续批量Ping测试 89·设置IE的标题 90·收发电子邮件 91·FTP上传下载 92·网络聊天WINSOCK-TCP 93·广播信息WINSOCK-UDP 94·电话拨号上网 第十章 95·进制转换 96·随机选号 97·统计英文字符数 第十一章 98·鼠标位置追踪 99·代码控制光标 100·模拟鼠标单双击 101·模拟键盘输入 102·限定鼠标区域 103·截获鼠标移开事件 104·截获键盘信息 第十二章 105·产生程序序列号 106·建立一个快捷方式 107·设置程序为自动被执行 108·注册与卸载OCX 109·限定程序的使用时限 110·在IE工具栏加入快捷图标

15,979

社区成员

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

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