1、添加菜单资源
     在resourceview视图中右击选择insert,添加一个菜单资源IDR_MENU1,同时设定好响应的菜单项,例

如:
         菜单1                                          菜单2
           子菜单1(ID_MENUITEM1)            子菜单3(ID_MENUITEM3)
           子菜单2(ID_MENUITEM2)            子菜单4(ID_MENUITEM4)
2、在对话框中添加该菜单,先增成员变量HMENU m_hMenu1; 然后在初始化函数OnInitDialog()添加一下代码:
   m_hMenu1=LoadMenu(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MENU1));//导入资源,创建菜单

   ::SetMenu(this->GetSafeHwnd(),m_hMenu1);//添加到对话框
3、添加子菜单响应函数
   点击菜单View-->ClassWizard,在message map选项卡中选择我们要响应的菜单ID_MENUITEM1,然后选

择COMMAND消息,双击添加到member functions中,提示命名,命名后在member functions双击该函数,

编写响应动作

4、注销资源
   在对话框的OnDestroy函数中添加一下代码:
   DestroyMenu(m_hMenu1);

5、关于禁用菜单或者子菜单

子菜单
  CMenu * pMenu;
  CMenu * pSubMenu;  
  pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针

pSubMenu=pMenu->GetSubMenu(1); //1表示从0开始的主菜单序号

pSubMenu->EnableMenuItem(ID_MENUITEM3,MF_GRAYED);//禁用
  //ID_MENUITEM3表示子菜单的ID号,MF_GRAYED表示禁用并且为灰色

pSubMenu->EnableMenuItem(ID_MENUITEM3,MF_ENABLED);//启用

主菜单
  CMenu   *   pMenu; 
  pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针
  pMenu->EnableMenuItem(1,MF_BYPOSITION |MF_GRAYED);//禁用
  //MF_BYPOSITION表示按序列查,从0开始,因为主菜单为popup类型,没有ID编号,只能用这中方式
 
  pMenu->EnableMenuItem(1,MF_ENABLED);//启用

主菜单下的popup联级菜单(其实类似主菜单)
  CMenu   *   pMenu;
  CMenu   *   pSubMenu;
  pMenu=CMenu::FromHandle(m_hMenu1);//获得菜单栏的指针
  pSubMenu=pMenu->GetSubMenu(0);//获得主菜单序号
  pSubMenu->EnableMenuItem(1,MF_BYPOSITION |MF_GRAYED);//禁用
  //MF_BYPOSITION表示该主菜单下的第一个菜单,该菜单没有ID号,为popup类型

最新文章

  1. python __globals__, __file__
  2. Nhibernate 4.0 教程入门
  3. JavaScript的三种工业化调试方法
  4. mysql权限管理
  5. ebox学习之SD & fat 配置
  6. Arduino 极速入门系列–1 点亮 LED
  7. 《开源大数据分析引擎Impala实战》目录
  8. 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel
  9. python jar
  10. 使用MediaRecorder录制视频短片
  11. 在windows下用eclipse + pydev插件来配置python的开发环境
  12. 【2013杭州区域赛】部分题解 hdu4770—4780
  13. uva 714 Copying Books(二分法求最大值最小化)
  14. hdoj 1269 迷宫城堡(强连通分量)
  15. MySQL Full Join的实现
  16. jQuery的each函数
  17. iOS坐标转换失败?UIKit的屠神坑
  18. SpringtMVC中配置 <mvc:annotation-driven/> 与 <mvc:default-servlet-handler/> 源码解析
  19. C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
  20. DRF之项目搭建

热门文章

  1. Mechanism of Loading Resources
  2. poj 1654 Area 多边形面积
  3. Hibernate中的"Repeated column in mapping for entity"异常
  4. MySQL(8):数值类型详细分析
  5. android客户端从服务器端获取json数据并解析的实现代码
  6. 关于国际化中的$NON-NLS-1$
  7. Java获取 JVM 运行信息
  8. 优雅的使用 PhpStorm 来开发 Laravel 项目
  9. 阿里云 mysql 无缘无故挂掉
  10. 配置android source 在ubuntu中编译环境