重写Dialog 的OnInitMenuPopup 。在里面对MENU项进行CheckMenuItem和EnableMenuItem等操作 void CPicSel::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu) { CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu); //disable掉打印菜单 if(m_nOrder==0){ pPopupMenu->CheckMenuItem (ID_MENU_FILENAME,MF_CHECKED); pPopupMenu->CheckMenuItem (ID_MENU_LSTTIME,MF_UNCHECKED); }else{ pPopupMenu->CheckMenuItem (ID_MENU_LSTTIME,MF_CHECKED); pPopupMenu->CheckMenuItem (ID_MENU_FILENAME,MF_UNCHECKED); } /*if(m_bCTfilter) pPopupMenu->CheckMenuItem (ID_MENU_CTFILTER,MF_CHECKED); else pPopupMenu->CheckMenuItem (ID_MENU_CTFILTER,MF_UNCHECKED);*/ }