MFC应用实例:[10]启用、禁用菜单
1、新建一个单文档的MFC应用,工程的名字为EnableMenu。
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/c3c22dbf3bef354fc30f5c8d23db574afb321b0f.jpg)
2、在工作区选择classview标签,展开EnableMenu classes,右击觊皱筠桡CMainFrame类,在弹出的菜单中选择add Me罪焐芡拂mber命令,在弹出的对话框中的变量类型填上bool,变量名称为m_flag,access选择private。
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/fb738d9c2cf7dfb247ae269fd01b1edef5dc130f.jpg)
3、展开CMainFrame,双击CMainFrame()函数,添加一下代码:m_flag = false; // 初始化,标示步骤一还没执行
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/a1780d1fceecd3d9cdc21a77679959430501080f.jpg)
4、在工作区的Resource View标签,展开Height resources|Menu,双击IDR_MAINFRAME选项,在客户区显示单文档的菜单栏。如图添加菜单。
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/054056fe1e425d6ba866a19a11883913e9e5000f.jpg)
5、在“步骤一”和“步骤二”菜单上分别点击右键,然后选择建立类向导。弹出MFC cla衡痕贤伎ssWizard,在Message列表框中选择COMM帆歌达缒AND选项,单击Add Function按钮,弹出Add Member Function对话框,单击OK按钮,最后单击Edit Code按钮。然后在“步骤二”菜单上点击右键,然后选择建立类向导。弹出MFC classWizard,在Message列表框中选择UPDATE_COMMAND_UI选项,单击Add Function按钮。并在相应的函数中添加一下代码:void CMainFrame::OnOptStep1(){ m_flag = true; MessageBox("步骤一完成,可以执行步骤二了。");}void CMainFrame::OnOptStep2(){ MessageBox("步骤二完成。"); }void CMainFrame::OnUpdateOptStep2(CCmdUI* pCmdUI){ pCmdUI->Enable(m_flag); // 通过变量m_flag决定步骤二的执行菜单是否可用}
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/edafb3bcbe2f4770f3af37696f3b3b860321790f.jpg)
6、运行结果只有执行了一个菜单后另一个菜单才能执行如下:
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/52fae62064fb960bf196edd28fa355e982ae6c0f.jpg)
![MFC应用实例:[10]启用、禁用菜单](https://exp-picture.cdn.bcebos.com/586bfdefe07814311501dadfdc6699cf0353620f.jpg)