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;

转载于:https://www.cnblogs.com/jgliuhui1988/p/7464145.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值