我在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);
怎么菜单一点反映都没有呢.
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);
怎么菜单一点反映都没有呢.
然后在那个新添加的OnUpdateXXXX()函数中添加:pCmdUI->Enable(false);
我什么我哪样做没反映呢,m_bAutoMenuEnable = FALSE;到底是什么意思呢。
(连禁用都不行)哪CMenu,HMenu有什么用呀。
我怀疑是你这几句里的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);
最好可以下载源代码。
然后在那个新添加的函数中添加:
pCmdUI->Enable(false);
这个方法可行,试过没有
是没有问题的