如图,我新建路简单的单文档MFC工程,并在Resource中建立了一些菜单项。
其中有一个菜单包含4个子项:
━┓
-设置
-直线
-矩形
-圆形
我希望点击“设置”后,将默认Gray的“直线、矩形、圆形”等菜单项激活。
我的步骤如下:
1、在CMainFrame中响应“设置”,并在响应函数中添加代码(暂时尝试一个菜单项):
GetMenu()->GetSubMenu(2)->EnableMenuItem(1,MF_BYPOSITION | MF_ENABLED);
2、在CMainFrame构造函数中写:m_bAutoMenuEnable=FALSE;以上步骤以后,我点击“设置”没有效果。请问我还缺什么步骤?本人新手,做课程设计在这里卡好久了。
其中有一个菜单包含4个子项:
━┓
-设置
-直线
-矩形
-圆形
我希望点击“设置”后,将默认Gray的“直线、矩形、圆形”等菜单项激活。
我的步骤如下:
1、在CMainFrame中响应“设置”,并在响应函数中添加代码(暂时尝试一个菜单项):
GetMenu()->GetSubMenu(2)->EnableMenuItem(1,MF_BYPOSITION | MF_ENABLED);
2、在CMainFrame构造函数中写:m_bAutoMenuEnable=FALSE;以上步骤以后,我点击“设置”没有效果。请问我还缺什么步骤?本人新手,做课程设计在这里卡好久了。
在设置的菜单消息中设置相应的变量值
在“直线、矩形、圆形”对应的消息中通过pCmdUI->Enable设置可用性
不需要对每个菜单写更新函数。能减少很多代码,而且多个菜单只有一个有效
ON_UPDATE_COMMAND_UI_RANGE(ID_Line,ID_Circle,OnUpdateShapechoice)
void CXXXView::OnUpdateShapechoice(CCmdUI *pCmdUI)
{
pCmdUI->SetRadio(choice==(pCmdUI->m_nID-ID_Line));
}
关于choice在你点每个菜单击事件中进行设定,比如点直线设置choice=0,其他依次递增。