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类型

转载于:https://www.cnblogs.com/sidely/p/3761262.html

Visual C++ 对话框增加菜单栏相关推荐

  1. 如何给 Visual C++ 中的对话框增加位图背景

    如何给 Visual C++ 中的对话框增加位图背景 Visual C++ 是 Microsoft 至今最全面和最完善的程序开放产品之一,它提供了一组各种各样的为适应几乎每一种编程风格而设计的工具,在 ...

  2. 为Visual Studio 2010增加ExtJs智能提示

    为Visual Studio 2010增加ExtJs智能提示 2011-12-10 15:15来自wjkhappy14 下载 http://onlyaa.com/uploads/soft/vswd-e ...

  3. VC 在对话框中增加菜单栏

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

  4. 从FCKEDITOR到ckeditor(二) 撰写自定义对话框,增加数学公式(与webEq的结合)

    2019独角兽企业重金招聘Python工程师标准>>> ckeditor3.2.1 自定义对话框+自定义工具按钮,增加数学公式(与webEq的结合) 关键字:ckeditor,web ...

  5. MFC对话框添加菜单栏

    1.解决方案资源管理器--资源文件--**.rc双击(转至资源视图) 2.资源视图--右击**.rc--添加资源--Menu--新建--图形化界面编辑 3.图形化编辑完成后,切换到目标对话框的头文件( ...

  6. jQuery查找标签--选择器,筛选器,模态对话框, 左侧菜单栏

    查找标签 选择器: 基本选择器(同css) id选择器 $("#id")标签选择器 $('tagName')class选择器 $(".className")配合 ...

  7. Visual C# 对话框全接触

    VS.net bate 2出来也很久了,感觉还可以.早一阵子,朋友让我帮他写两个打印程序,当中用了不少的对话,在查资料的时候看到国外有一篇专门的文章介绍对话框的,就决定写这篇文章,让大家都有个好的起点 ...

  8. 怎样编写一个Photoshop滤镜(4) -- 在对话框上增加缩略图

    在上一篇文章里,我们讲解了为滤镜添加术语资源,从而使我们的滤镜可以被PS的scripting system感知和描述,这样即友好支持了PS的"动作"面板.在这一篇文章中,我们将对此 ...

  9. 【C++】Visual Studio教程(十) - 初步了解 Visual Studio IDE

    00. 目录 文章目录 00. 目录 01. 启动窗口 02. 创建项目 03. 解决方案资源管理器 04. 菜单 05. 错误列表 06. "输出"窗口 07. 搜索框 08. ...

最新文章

  1. JavaScript 异步编程--Generator函数、async、await
  2. go爬取json_Python爬取百度文库学习
  3. 二叉树查找结点c语言_二叉树操作详解
  4. JS读取id和name的操作
  5. ceph13 快速编译 v13.2.4 --2019_8
  6. redis持久化之rdb
  7. linux 字符下 上网,Linux下实现字符串截取方法总结(示例代码)
  8. 关于ipxe启动的几个疑问
  9. 法拉克机器人自动怎么调_发那科机器人的简单设置你知道吗
  10. html顺序播放mp3,完美:按顺序播放mp3的方法是什么?如何更改U盘中歌曲的播放顺序...
  11. 解决VMbox中软连接创建错误的问题
  12. 学习新手给Android新手的一些学习建议
  13. 集成学习(上):机器学习基础task1-熟悉机器学习的三大主要任务
  14. xv6 6.S081 Lab5: cow
  15. 如何关闭VS的DEP保护(数据执行保护)
  16. 湖南省智慧教育装备展示体验中心关于暂停研学、暑假社会实践等活动通知
  17. 车牌生成代码车牌后5位生成代码
  18. 计算机房灭火器单具基准,灭火器计算题这6个步骤吃透了,此考点的分数也不会丢了...
  19. linux安装及配置mycat eye可视化监控界面
  20. Hello Java

热门文章

  1. 无人驾驶急需解决:规划控制和传感器价格高两大问题
  2. 18年你需要了解的15个人工智能统计数据
  3. Google公布OpenFermion:量子计算机的开源软件包
  4. 我为什么强烈反对程序员加班?
  5. 惊艳!为艺术而生的算法
  6. Linux k8s 启动 停止 查询状态 脚本
  7. Luogu P4859「已经没有什么好害怕的了」
  8. 时间卷积网络(TCN)在 NLP 多领域发光,RNN 或将没落
  9. 开始接触QM(Quality Management)
  10. spring 事务 对象保存之后,修改的时候,自动更新提交?