为dialog加入WM_INITMENUPOPUP处理:void CTestDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) 
{
// CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);

// TODO: Add your message handler code here

if(!bSysMenu&&pPopupMenu)                                                         
{                                                                               
CCmdUI cmdUI;
cmdUI.m_pOther = NULL;
cmdUI.m_pMenu = pPopupMenu;
cmdUI.m_pSubMenu = NULL;

UINT count = pPopupMenu -> GetMenuItemCount();
cmdUI.m_nIndexMax = count;
for(UINT i = 0; i < count; i++)
{
UINT nID = pPopupMenu -> GetMenuItemID(i);
if(nID == -1 || nID == 0)
continue;
cmdUI.m_nID = nID;
cmdUI.m_nIndex = i;
cmdUI.DoUpdate(this, FALSE);
}
}                                                                               }