博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VC菜单操作
阅读量:6907 次
发布时间:2019-06-27

本文共 1149 字,大约阅读时间需要 3 分钟。

基本上的所有的菜单相关都需要找到指针或是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

 

 

 

 

 

 

 

转载地址:http://cmrdl.baihongyu.com/

你可能感兴趣的文章
Angular学习笔记(二) - 生命周期钩子
查看>>
vue中文件上传阿里云并获取上传进度
查看>>
用createObjectURL实现本地图片预览
查看>>
【物联网】——智慧交通
查看>>
第十五课时: 响应式布局
查看>>
如何在1到100的整数数组上找到缺失的数字
查看>>
webToImage (网页转图片)模块试用分享
查看>>
前端实用知识
查看>>
90. Subsets II
查看>>
前嗅ForeSpider教程:如何创建新任务
查看>>
大厂高级前端面试题答案
查看>>
javascript动态合并纵向单元格
查看>>
JavaScript 是如何工作的:模块的构建以及对应的打包工具
查看>>
Spring Boot 2.1.2 & Spring Cloud Greenwich 升级记录
查看>>
leetcode378. Kth Smallest Element in a Sorted Matrix
查看>>
DOM 元素中的焦点管理
查看>>
个人博客四|注册登录退出功能后台开发
查看>>
如何更优雅地切换Git分支
查看>>
Spring AOP(一) AOP基本概念
查看>>
Python之时间和日期使用小结
查看>>