VS2008-MFC框架视图程序,在子窗口中修改菜单无效

activexme 2014-10-22 08:47:26
环境:VS2008 SP1
框架:MFC Feature Pack for Visual C++ 2008

默认菜单

重载了CChildFrame::OnUpdateFrameMenu,
代码如下:
void CChildFrame::OnUpdateFrameMenu(BOOL bActive, CWnd* pActiveWnd, HMENU hMenuAlt)
{
// TODO: 在此添加专用代码和/或调用基类
TRACE("OnUpdateFrameMenu\n");

CMenu* mu = CMenu::FromHandle(hMenuAlt);
mu->AppendMenu(MF_STRING, ID_EDIT_PASTE, L"test");

CMDIChildWndEx::OnUpdateFrameMenu(bActive, pActiveWnd, hMenuAlt);
}

结果编辑,视图,窗口项菜单都不出来了
效果如下:


后来换成CMFCMenuBar试。
代码如下:
void CChildFrame::OnUpdateFrameMenu(BOOL bActive, CWnd* pActiveWnd, HMENU hMenuAlt)
{
// TODO: 在此添加专用代码和/或调用基类
TRACE("OnUpdateFrameMenu\n");

//CMenu* mu = CMenu::FromHandle(hMenuAlt);
CMFCMenuBar mb;
mb.CreateFromMenu(hMenuAlt);
mb.InsertButton(CMFCToolBarMenuButton(0, NULL, -1, L"test"));

CMDIChildWndEx::OnUpdateFrameMenu(bActive, pActiveWnd, hMenuAlt);
}

这回编辑,视图,窗口子项到是出来了,但是手动添加的test仍然不出来。
效果如下:
...全文
185 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
activexme 2014-10-23
  • 打赏
  • 举报
回复
引用 1 楼 wxhxj0268 的回复:
你想做什么操作?
我想在主菜单中增加一个子菜单项“test”,上面已给出代码。
笨笨仔 2014-10-23
  • 打赏
  • 举报
回复
我通常不使用动态增加,先加好菜单和响应函数,不用时灰掉或动态去掉,这样写响应程序比较方便。
笨笨仔 2014-10-22
  • 打赏
  • 举报
回复
你想做什么操作?

15,978

社区成员

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

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