CMenu::EnableMenuItem

 
启用、 禁用,或变暗的菜单项。
 
UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable);

参数

nIDEnableItem
根据所指定的菜单项,若要启用, nEnable。 弹出菜单项,以及标准菜单项,可以指定此参数。

nEnable
指定要执行的操作。 它可以是组合的MF_DISABLED, MF_ENABLED,或MF_GRAYED,与MF_BYCOMMAND或MF_BYPOSITION。 可以通过使用按位 OR 运算符组合这些值。 这些值将具有以下含义︰

  • MF_BYCOMMAND指定参数给出的现有菜单项的命令 ID。 这是默认设置。

  • MF_BYPOSITION指定参数给出的现有菜单项的位置。 第一项位于位置 0。

  • MF_DISABLED禁用菜单项,以便它不能选择,但它不 dim。

  • MF_ENABLED启用菜单项,以便它可以选择并将其还原的灰显状态。

  • MF_GRAYED禁用菜单项,以便它不能同时选择和调低亮度它。

返回值

以前的状态 ( MF_DISABLED, MF_ENABLED,或MF_GRAYED) 则返回 –&1; 是否有效。

备注

CreateMenu, InsertMenu, ModifyMenu,和LoadMenuIndirect成员函数还可以菜单项上的设置状态 (启用、 禁用或变暗)。

使用MF_BYPOSITION值要求应用程序使用的正确CMenu。 如果CMenu的菜单栏中使用时,会影响顶级菜单项 (在菜单栏中的项)。 若要按位置弹出窗口或嵌套的弹出菜单中设置项的状态,应用程序必须指定CMenu的弹出菜单。

当应用程序指定MF_BYCOMMAND标志,Windows 将检查所有隶属于的弹出菜单项CMenu; 因此,除非存在重复的菜单项时,使用CMenu的菜单栏就足够。

例子:

 CMenu menu;
menu.LoadMenuA(IDR_POP_MENU);
CMenu* pMenu = menu.GetSubMenu(); pMenu->EnableMenuItem(ID_PrevPage,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED); pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,AfxGetMainWnd());

pS:

  EnableMenuItem要想要起作用必须在MainFrame类中添加该一下代码

  m_bAutoMenuEnable = FALSE;

CMenu类中禁用/变灰某一项的更多相关文章

  1. MFC中菜单变灰的问题

    MFC中菜单变灰 方法1:有UpdateCmdUI句柄时 定义一个BOOL变量m_b来标志菜单项是否有效, 该菜单项响应UPDATE_COMMAND_UI消息,在消息处理函数中pCmdUI->E ...

  2. 简单练习题2编写Java应用程序。首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”、“取款”和“余额查询”。其次, 编写一个主类,在主类中测试Account类的功能

    编写Java应用程序.首先定义一个描述银行账户的Account类,包括成员变 量“账号”和“存款余额”,成员方法有“存款”.“取款”和“余额查询”.其次, 编写一个主类,在主类中测试Account类的 ...

  3. MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案

    CSDN的博客编辑器实在是难用……转战博客园 直接把CSDN发的搬过来了 ————————————————————————————我是分割线———————————————————————————— 第 ...

  4. eclipse中访问不了tomcat首页server Locations变灰无法编辑

    eclipse中访问不了tomcat首页server Locations变灰无法编辑 2014年07月25日 14:37:21 wuha0 阅读数:19139更多 个人分类: servlet   解决 ...

  5. Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑

    Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑解决办法:1.首先将Servers中部署的 ...

  6. day20-Python运维开发基础(装饰器 / 类中的方法 / 类的方法变属性)

    1. 装饰器 / 类中的方法 / 类的方法变属性 # ### 装饰器 """ 定义:装饰器用于拓展原来函数功能的一种语法,返回新函数替换旧函数 优点:在不更改原函数代码的 ...

  7. VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)

    鸡啄米在上一节中讲的是VS2010的菜单资源,本节主要讲菜单及CMenu类的使用. CMenu类的主要成员函数 MFC为菜单的操作提供了CMenu类,下面鸡啄米就常用的几个成员函数进行简单的介绍. B ...

  8. 菜单及CMenu类的使用

    CMenu类的主要成员函数 BOOL LoadMenu(UINT nIDResource); 加载菜单资源,并将其附加到CMenu对象上.参数nIDResource指定了要加载的菜单资源的ID.如果菜 ...

  9. VS2010-MFC(菜单:菜单及CMenu类的使用)

    转自:http://www.jizhuomi.com/software/212.html 上一节讲的是VS2010的菜单资源,本节主要讲菜单及CMenu类的使用. CMenu类的主要成员函数 MFC为 ...

随机推荐

  1. Windows篇:文件对比软件->"DiffMerge"

    文件对比软件->"DiffMerge" DiffMerge是什么? 如果没有DiffMerge! 想想一下,有两篇10000字的文章,找不同,眼睛都要看花吧.有了DiffMe ...

  2. poj2236 Wireless Network(并查集直接套模板

    题目地址:http://poj.org/problem?id=2236 题目大意:n台电脑都坏了,只有距离小于d且被修好的电脑才可以互相联系,联系可传递.输入n和d,n个点的坐标x y.两个操作:O ...

  3. java多线程(待完善)

    1.小型系统 // 线程完成的任务(Runnable对象)和线程对象(Thread)之间紧密相连 class A implements Runnable{ public void run(){ // ...

  4. Arch-base-vs-iso

    Arch-base-vs-iso 通常绝大多数的Linux分发版的iso镜像本身(*.iso文件都有约2Gb上下)都可以直接启动电脑并运行完整的Linux桌面系统. 极少数的Linux发行版仅提供命令 ...

  5. PHP处理大数据量老用户头像更新的操作--解决数据量大超时的问题

    /** * @title 老用户头像更新--每3秒调用一次接口,每次更新10条数据 * @example user/createHeadPicForOldUser? * @method GET * @ ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-info-sign

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  7. spark源码单步跟踪阅读-从毛片说起

    想当年读大学时,那时毛片还叫毛片,现在有文明的叫法了,叫小电影或者爱情动作片.那时宿舍有位大神,喜欢看各种毛片,当我们纠结于毛片上的马赛克时,大神大手一挥说道:这算啥,阅尽天下毛片,心中自然无码!突然 ...

  8. Centos7安装Redis-单节点

    1.安装 gcc 编译环境 由于 Redis 使用 C 语言开发,所以官网下载的源码需要进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装. ​[root@CentOS ~]# yu ...

  9. 剑指offer自学系列(二)

    题目描述: 在一个长度为n的数组里的所有数字都在0到n-1的范围内,数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次,请找出数组中任一个重复的数字,例如,如果输入长度为7的 ...

  10. POJ 3254:Corn Fields

    Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9295   Accepted: 4940 Descr ...