方法一:
第一步:
响应WM_INITMENUPOPUP消息
void C***::OnInitMenuPopup(CMenu* pPopupMenu, UINT /*nIndex*/, BOOL /*bSysMenu*/)
{
CCmdUI CmdUI;
for(UINT Idx = 0;Idx < pPopupMenu->GetMenuItemCount();Idx++)
{
CmdUI.m_nID = pPopupMenu->GetMenuItemID(Idx);
CmdUI.m_nIndex = Idx;
CmdUI.m_nIndexMax = pPopupMenu->GetMenuItemCount();
CmdUI.m_pMenu = pPopupMenu;
CmdUI.DoUpdate(this,FALSE);
}
}
第二步:
响应ON_UPDATE_COMMAND_UI或者ON_UPDATE_COMMAND_UI_RANGE消息就可以了.
http://blog.csdn.net/laiyiling/archive/2004/08/27/87027.aspx
英文:
http://support.microsoft.com/default.aspx?scid=kb;en-us;242577