zoukankan      html  css  js  c++  java
  • Visual C++ 对话框增加菜单栏

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

  • 相关阅读:
    MySQL5.7安装详细教程
    Java之GUI编程
    Java基础
    生成JavaDoc文档
    SpringtMVC运行流程:@RequestMapping 方法中的 Map、HttpServletRequest等参数信息是如何封装和传递的(源码理解)
    SpringCache @Cacheable 在同一个类中调用方法,导致缓存不生效的问题及解决办法
    Spring源码学习:第1步--在Spring源码中添加最简单的Demo代码
    Spring源码学习:第2步--使用SLF4j+Log4j日志框架替换掉其自身的commons-logging日志框架
    Spring源码学习:第0步--环境准备
    JasperReport报表
  • 原文地址:https://www.cnblogs.com/sidely/p/3761262.html
Copyright © 2011-2022 走看看