一、没有UpdateCmdUI句柄时 MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序 然后在消息响应函数中添加如下代码: CMenu* m_menu = GetMenu(); 一、有UpdateCmdUI句柄时 在框架中添加菜单ID的ON_UPDATE_COMMAND_UI消息,在相应函数参数中会有“CCmdUI* pCmdUI”这个参数,添加如下代码: pCmdUI->Enable(false); 就可是这个菜单变灰显 |
GetDlgItem(ID_PASTE)->EnableWindow(FALSE);
CMenu menu;
if(menu.LoadMenu(IDR_XXX_MENU))
{
CPoint m_point;
::GetCursorPos(&m_point);
CMenu& pPopup=*menu.GetSubMenu(0);
menu.EnableMenuItem(ID_XXX_MENU, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); pPopup.TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,
point.x,point.y,this);
}