怎么设置菜单无效呢

lvcjh 2003-06-05 02:03:39
我在CMainFrame::OnCreate()中用
m_bAutoMenuEnable = FALSE;

//设置菜单项目
// CMenu * m_pSysMenu;
// m_pSysMenu=GetMenu();
// m_pSysMenu->EnableMenuItem(ID_BILL_CUSTOMER,MF_DISABLED|MF_GRAYED);

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(1);
submenu->EnableMenuItem(ID_BILL_CUSTOMER, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

怎么菜单一点反映都没有呢.
...全文
105 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hjhwfw 2003-06-07
  • 打赏
  • 举报
回复
m_bAutoMenuEnable=FALSE;
是没有问题的
kilnut 2003-06-07
  • 打赏
  • 举报
回复
用ClassWizard给需要变灰的菜单项添加UPDATE_COMMAND_UI函数,
然后在那个新添加的函数中添加:
pCmdUI->Enable(false);
这个方法可行,试过没有
lvcjh 2003-06-06
  • 打赏
  • 举报
回复
能给不是用UPDATE_COMMAND_UI的例子么。
最好可以下载源代码。
kingtsui 2003-06-05
  • 打赏
  • 举报
回复
你这种方法当然是可以的
我怀疑是你这几句里的GetMenu, GetSubMenu 有点问题,你确认一下他们的值对不对,或者不要再Oncreate里,而是在别的地方试试,比如OnMenuPopup里(WM_INITMENUPOPUP的消息处理函数里)
CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(1);
submenu->EnableMenuItem(ID_BILL_CUSTOMER, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

lvcjh 2003-06-05
  • 打赏
  • 举报
回复
就只能这一种方法么。
我什么我哪样做没反映呢,m_bAutoMenuEnable = FALSE;到底是什么意思呢。
(连禁用都不行)哪CMenu,HMenu有什么用呀。
mtsh 2003-06-05
  • 打赏
  • 举报
回复
用ClassWizard给需要变灰的菜单项添加UPDATE_COMMAND_UI函数,如果这很多菜单的更新逻辑机制相同的话,就修改所有的函数名为同一个函数(多对一影射),然后在函数内部code了!
lvcjh 2003-06-05
  • 打赏
  • 举报
回复
我不希望哪样,因为我必须为每个命令响应UPDATE_COMMAND_UI,现在在CMainFrame中就有很多函数。看起来就不方便。
Aerith 2003-06-05
  • 打赏
  • 举报
回复
用ClassWizard给需要变灰的菜单项添加UPDATE_COMMAND_UI函数,
然后在那个新添加的OnUpdateXXXX()函数中添加:

pCmdUI->Enable(false);

15,979

社区成员

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

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