MFC菜单

OnUpdateUIState


CMenu::EnableMenuItem

启用,禁用或灰显菜单项。

UINT EnableMenuItem(
   UINT nIDEnableItem,
   UINT nEnable 
);
参数
nIDEnableItem

指定由将启用的,菜单项 nEnable。 此参数可指定弹出菜单项、标准菜单项。

nEnable

指定该操作。 它可以是 MF_DISABLED、 MF_ENABLED或 MF_GRAYED的组合,与 MF_BYCOMMAND 或 MF_BYPOSITION。 可以使用或运算符,这些值可以按位组合。 这些值的含义如下:

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

  • MF_BYPOSITION 指定参数为现有菜单项的位置。 第一项在位置0。

  • MF_DISABLED 禁用菜单项,使它不能选择,但不灰显它。

  • 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 存在,就足够了。

示例

// The code fragment below shows how to disable (and gray out) the 
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of 
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are 
// needed, and CMenu::EnableMenuItem() will work as expected.

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

要求

Header: afxwin.h


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值