大家好,本人初学vc.现有一事不明,望各位不吝赐教~ 
请问设置菜单可用不可用只能在OnInitDialog()中吗? 
如果我想在当对话框中的某个值做出修改时,同时相应的修改菜单栏的可用状态。 
CMenu* pSysMenu = GetSystemMenu(FALSE); 
if (pSysMenu != NULL) 

CString strAboutMenu; 
strAboutMenu.LoadString(IDS_ABOUTBOX); 
if (!strAboutMenu.IsEmpty()) 

pSysMenu->AppendMenu(MF_SEPARATOR); 
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 

} CMenu *pMenu; 
    pMenu->LoadMenu(IDR_MENU1); 
    pMenu=CWnd::GetMenu()->GetSubMenu (4); 
MenuEnable=MF_BYCOMMAND|MF_ENABLED; 
UnMenuEnable=MF_BYCOMMAND|MF_GRAYED; 
if (pApp->g_chosehall==0) 
{  
pMenu->EnableMenuItem (ID_DFA_CTRL,UnMenuEnable); 
pMenu->EnableMenuItem (ID_BDA_CTRL,UnMenuEnable); } 
if (pApp->g_chosehall==1) 

    pMenu->EnableMenuItem (ID_SPACECRAFT_CTRL,UnMenuEnable); 
pMenu->EnableMenuItem (ID_UFO_CTRL,UnMenuEnable); 

也就是话当我的pApp->g_chosehall变化时设置菜单栏状态。为什么运行出错~望各大侠赐教~