在一个单文档程序中,开始让第二个菜单项为灰色!
我想使用菜单项调用对话框,在对话框中点击确定,使得第二项菜单为可用状态!
void CDialog1::OnOK()
{
// TODO: Add extra validation here
CMenu* pMenu=this->GetMenu();
pMenu->EnableMenuItem(1,MF_BYPOSITION|MF_ENABLED);
CDialog::OnOK();
}
执行并没问题,但是当我点击“确定”时,出来一个提示“unhandled exception in aa.exe(mfc42d.dll):0xc0000005:access violation”!说生成的单文档程序需关闭!可能是内部有冲突!但是却不能调出来!
请大家帮忙!
我想使用菜单项调用对话框,在对话框中点击确定,使得第二项菜单为可用状态!
void CDialog1::OnOK()
{
// TODO: Add extra validation here
CMenu* pMenu=this->GetMenu();
pMenu->EnableMenuItem(1,MF_BYPOSITION|MF_ENABLED);
CDialog::OnOK();
}
执行并没问题,但是当我点击“确定”时,出来一个提示“unhandled exception in aa.exe(mfc42d.dll):0xc0000005:access violation”!说生成的单文档程序需关闭!可能是内部有冲突!但是却不能调出来!
请大家帮忙!
pMenu->EnableMenuItem(1,MF_BYPOSITION ¦MF_ENABLED);
别用this->GetMenu
this现在指向的是对话框
if (dlg.DoModal() == IDOK)
{
CMenu *pMenu = GetMenu();
if (pMenu)
p->EnableMenuItem(1, MF_BYPOSITION | MF_ENABLED);
}
void CDialog1::OnOK()
{
// TODO: Add extra validation here
CWnd* pMain = AfxGetMainWnd();
CMenu* pMenu=pMain->GetMenu();
pMenu->EnableMenuItem(1,MF_BYPOSITION|MF_ENABLED);
CDialog::OnOK();
}