vs2010动态菜单和工具条

还不晚 2011-11-07 01:09:00
vs2010 使用的是BCG,请问怎么动态添加菜单和工具条按钮?
...全文
87 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
还不晚 2011-11-08
  • 打赏
  • 举报
回复
谢谢shenchenman
但我的菜单资源要在运行时通过代码添加,不能使用LoadMenu函数
shenchenman 2011-11-07
  • 打赏
  • 举报
回复
首先必须有框架类
如果是基于对话框的,那么自己手动加上frm
然后在主对话框的OnInitDialog函数里加上菜单跟工具条(示例):
m_wndMenuBar.Create (this);

CMenu menu;
menu.LoadMenu (IDR_MAINFRAME);
m_wndMenuBar.CreateFromMenu (menu.GetSafeHmenu (), TRUE, TRUE);

m_wndMenuBar.SetBarStyle (
m_wndMenuBar.GetBarStyle () &
~(CBRS_GRIPPER | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));

// 设置菜单栏定位图片rect
CRect rectMenuBar;
m_wndMenuBarLocation.GetWindowRect (&rectMenuBar);
ScreenToClient (&rectMenuBar);

m_wndMenuBar.SetWindowPos (&wndTop, rectMenuBar.left, rectMenuBar.top,
rectMenuBar.Width (),
rectMenuBar.Height (),
SWP_NOACTIVATE);

m_pMenuFrame = new CCmdFrame (this);

if (NULL == m_pMenuFrame)
{
PRINT_LOG(SERVER_UI, "CAirFluxServerDlg::InitializeUI", LEVEL_ERROR,
"初始化界面失败!");
return;
}
m_pMenuFrame->Create (NULL, _T(""));
m_pMenuFrame->ShowWindow (SW_HIDE);
m_pMenuFrame->SetMenuBar (&m_wndMenuBar);

m_wndMenuBar.SetOwner (m_pMenuFrame);
BCGCBProSetTopLevelFrame (m_pMenuFrame);
xiejijun_05 2011-11-07
  • 打赏
  • 举报
回复
如果安装了BCG,看BCG安装目录下的sample.不知道VS2010安装目录下有没有.

64,684

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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