• VC菜单操作


    基本上的所有的菜单相关都需要找到指针或是ID号,首先说一下获取指针的方法

    获取菜单指针

       CMenu* pMenu = AfxGetMainWnd()->GetMenu();

       GetMenu()后面还可以这样写获得菜单项的指针  GetMenu()->GetSubMenu(0)->。。。。

      

    下面是一个菜单常用的设置

    设置1  设置菜单默认项 加黑显示

       GetMenu()->GetSubMenu(0)->SetDefaultItem(1,TRUE); // 把子菜单中的菜单项设置为默认

    设置2  设置菜单选中  前面打勾(下面有两种方法能达到一个结果)

       GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION | MF_CHECKED); //用索引的方法设置
       GetMenu()->GetSubMenu(0)->CheckMenuItem(ID_FILE_NEW,MF_BYCOMMAND | MF_CHECKED);//用ID号的设置

    设置3  设置菜单项前面的图标 (注:图标的大小要在13*13像素点范围内 要不然会显示不全的)

      m_bitmap.LoadBitmap(IDB_BITMAP1);//载入图标 我们自己花的 ID号为IDB_BITMAP1
      GetMenu()->GetSubMenu(0)->SetMenuItemBitmaps(0,MF_BYPOSITION,&m_bitmap,&m_bitmap);

    设置4 屏蔽菜单项  有两种方法推荐第二种 (但是第二种只能设置弹出项)

    方法一

    1.这个首先把这行代码 赋值到  m_bAutoMenuEnable=FALSE;  CMainFrame::CMainFrame()函数中 主要是因为命令更新机制决定

    2.添加 GetMenu()->GetSubMenu(0)->EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);

    上面这样做完虽然可以达到目的 但是菜单不会制动更新

    方法二

    1、添加类向导(可以用ctrl+w )给菜单项加 新的消息响应 选择第二个 UPdata CMD。。。

    2、在新的消息响应函数里面添加这样两句话

    if(ID_FILE_NEW==pCmdUI->m_nID)
        pCmdUI->Enable(FALSE);

    注意:第一个if也可以不用写的,足以用的时候修改  ID_FILE_NEW 因为这里面是屏幕新建文件 要根据具情况更改

            如果想让菜单项激活吧上面的FALSE改成TRUE 就可以了

     还有更过操作做如请看孙新的饿视频教程

    1、添加动态菜单 就是直接用代码添加 看 lesson6G

  • 相关阅读:
    Oracle备份Scott
    Oracle_备份整库
    Oracle配置说明
    Linux-防火墙设置-centos6.10版
    Centos6.10-Nginx代理配置
    oen /var/run/nginx.pid failed
    Win10重置 系统诸多设置或者菜单点击无效或者异常信息回复办法
    EasyUI TreeGrid 悬浮效果
    Hive
    MapReduce高级_讲义
  • 原文地址:https://www.cnblogs.com/LJWJL/p/2711037.html
Copyright © 2020-2023  润新知