popup menu 要怎么才能让菜单项变灰?
自己弄了个右键弹出窗口,用了enablemenuitem()没什么效果,后来看了网上说要ON_UPDATE_COMMAND_UI 用CCmdUI *pCmdUI来enable或者disable选项,现在这个是成功了,点击了选项后是没用了,但是选项还是没有变灰色的。
下面这条pCmdUI->m_pMenu->EnableMenuItem(ID_MENU_DEL,MF_BYCOMMAND | MF_GRAYED); 自己试了下,也没用。
pCmdUI->m_nID出来的值就是我要处理的那个按钮的值,但到底要怎么让他变灰色呢?
下面的也试过了
// CMenu menu;
// VERIFY( menu.LoadMenu( IDR_MENU1 ) );
// CMenu* submenu = menu.GetSubMenu(0);
// submenu->EnableMenuItem(ID_MENU_DEL, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
// submenu->EnableMenuItem(ID_MENU_ADD, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
我的是在一个对话框的上面放了一个CListctrl,然后响应了这个listctrl的右键响应函数,弹出菜单。我是想在这个菜单弹出之前想把一个菜单项变灰色。不是frame或是view上的。我上面的方法都有试过。在我的程序里ccmdui->enable(false)是能把一个菜单点击事件变无效化,但是菜单项的显示还是没变灰色的。
[解决办法]
或者
PopupMenu1->Items->Items[0]->Enabled=false;
[解决办法]
楼上讲得对。直接对子菜单操作。
[解决办法]
楼主说的是的MFC? 这个最好到VC区去问比较好。
MFC会自动改变菜单的可用和禁用状态,除非先写上m_bAutoMenuEnable=FALSE;
[解决办法]
来关注下