CMenu类中禁用/变灰某一项

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的菜单栏就足够。

例子:

1 CMenu menu;
2 menu.LoadMenuA(IDR_POP_MENU);
3 CMenu* pMenu = menu.GetSubMenu(0);
4
5 pMenu->EnableMenuItem(ID_PrevPage,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED);
6
7 pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,AfxGetMainWnd());

pS:

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

  m_bAutoMenuEnable = FALSE;

时间: 2024-10-23 02:01:11

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

类语法规则与类中的函数

类语法 1.关键字class 2.class 类名 类名中不要写括号 3.类名规范:字母.数字.下划线组成,不能以数字开头:驼峰命名法,每个单词首字母大写 4.类属性:放在类中的变量值 调用属性:实例.属性名 5.类方法:类中的函数 调用方法:实例.方法名()---针对实例方法 类属性和类方法都不是类中必须的结构,但是一般都会有,这是类存在的意义 6.类里面的方法分3种: 1)实例方法:这个方法只能实例来调用 必须带有self参数; 括号里的self指的是实例本身,调用该函数时会自动传入实例;

Unity按钮禁用和变灰

this.GetComponent<Button>().enabled = false;//禁用按钮 如果需要将按钮变灰,则需要另外处理 最近才发现一个禁用和变灰的按钮,这几年的代码我踏马真是白写了 this.GetComponent<Button>().interactable = false;//禁用和变灰 原文地址:https://www.cnblogs.com/vsirWaiter/p/9122524.html

菜单及CMenu类的使用

CMenu类的主要成员函数 BOOL LoadMenu(UINT nIDResource); 加载菜单资源,并将其附加到CMenu对象上.参数nIDResource指定了要加载的菜单资源的ID.如果菜单加载成功则返回TRUE,否则返回FALSE. BOOL DeleteMenu(UINT nPosition,UINT nFlags); 在菜单中删除一个菜单项.参数nPosition指定要删除的菜单项.参数nFlags就用来解释nPosition的意义, 为MF_BYCOMMAND时说明nPosi

VC对话框的菜单设置变灰, 打勾 等

一般可以用UPDATE_COMMAND_UI消息,并加入以下代码:pCmdUI->Enable(FALSE); 就实现,弹对话框的菜单需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI. 原因 https://support.microsoft.com/zh-cn/help/242577/you-cannot-change-the-state-of-a-menu-item-from-its-command-user-interface-hand

怎样使用CMenu类

CMenu类从CObject类派生而来.为什么要使用CMenu类呢?AppWzard不是把菜单做好了吗?在资源编辑器上修改菜单不是很方便吗?     我是个vc++初学者,自从当斑竹以来,天天看贴子,也学到了不少东西.感觉学vc++稍微深入一点好,至少要能搞清楚AppWizard在背后都干了些什么东西.事实上mfc就是用CMenu类来生成菜单的.让我们就从CMenu开始吧.     CMenu生成的菜单有两种:Popup类型和非Popup类型.这两种方法里又可以分成使用资源编辑器生成的菜单资源和

cocos2d-x 保持屏幕点亮及自动变灰

很早之前遇到的问题,现在记录一下.有一家Android渠道(抱歉,时间太长了已经记不大清楚是哪一家了 oppo/联想/酷派?)在我们提交新版本时拒绝了,理由是:手机背光状态下,屏幕不会自动变灰. 这里为了测试,我将它改为30秒,这样做有什么影响呢?就是开启任何一个应用,在30秒之内,我如果没有任何的操作,就自动锁屏了.你可以拿你的手机试一下,比如打开微信然后放在那里不动,30之后它表现出来的的效果跟按了电源键锁屏类似.但还是有区别滴: 1)它有一个过渡阶段:屏幕由亮变暗,几秒之后屏幕才黑掉,需要

[原]quick2.25精灵变灰

由于quick2.25没有导出shader相应的接口,所以2.25无法直接使用shader. 本文简单介绍如何导出相应接口,同时教大家使用shader 实现精灵变灰 一.编写静态函数,以供导出使用(直接参考3.2版本的) 2.25的GLProgram是对应操作shader的类. 在GLProgram.h声明以下两个函数 static CCGLProgram* createWithByteArrays(const char* vShaderByteArray, const char* fShade

Ubuntu上安装火狐浏览器无法固定到启动器上,火狐图标显示异常 文件夹右键重命名选项变灰时重命名方法

http://blog.csdn.net/pipisorry/article/details/39483361 Ubuntu自带火狐浏览器,可是使用起来不好,并且版本还可能过旧,因此将其卸载(不卸载的话总是指向旧版本的firefox),于是从火狐官网上下载firefox并解压到/opt文件夹下. 不过下载的火狐无法固定到启动器上(可能看到固定上了,但是无法运行),并且图标似乎分辨率比较低,看起来比较模糊.),删除了:/home/qiyo/.mozilla/目录,然后才能固定上. 找到/opt文件

ios Button不想长按变灰的效果解决办法

图片长按变灰的效果: 既然不想要这种效果,那么解决的办法到底有哪些了? 解决办法一: 重写他的highlight的方法: 如下图 解决方法二:读Button的官方文档, 所以在代码中可以将它设为NO就行了 结果如下: