系统菜单使用

将变灰的菜单项激活,其实现方法是通过调用 CMenu::EnableMenuItem函数来实现,
该函数用法如下:
UINT EnableMenuItem(UINT nIDEnableItem,UINT nEnable);
其中参数“nIDEnableItem”为菜单项的ID号,用于指定被操作的菜单项;参数
“nEnable”为动作参数,用于说明要对被指定的菜单进行何种操作,其取值为
MF_DISABLED、MF_ENABLED、或MF_GRAYED 与 MF_BYCOMMAND 或MF_BYPOSITION的
“或运算”,其各取值常量的含义为:

MF_DISABLED:表示用命令ID拾取菜单项,为缺省
MF_ENABLED:在当前菜单中用基于零的偏移量来拾取菜单项。
MF_GRAYED:用户对菜单不可用
MF_BYCOMMAND:用户对菜单可用
MF_BYPOSITION:用户对菜单不可用,并且菜单以灰色显示

从上面的介绍可以知道,只要在调用EnableMenuItem函数时,将其参数"nEnable"
的值设置为MF_BYCOMMAND|MF_ENABLED,即可将指定的菜单项激活。
程序实现如下:
void CMyView::OnRButtonDown(UINT nFlags,CPoint point) 

CScrollView::OnRButtonDown(nFlags,point); 
CMenu* menu,*popup; menu=new CMenu(); 
//装入菜单资源 
menu->LoadMenu(IDR_POPUPMENU);
popup=menu->GetSubMenu(); 
UINT nEnable; 
nEnable=MF_BYCOMMAND|MF_GRAYED; 
if(your test){ 
nEnable=MF_BYCOMMAND|MF_ENABLED; 

pupup->EnableMenuItem(ID_YOUR_ID,nEnable); 
//显示菜单 
ClientToScreen(&point); popup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x,point.y,this);
delete menu; 
}

 

原文地址:http://www.vckbase.com/faq/menu/2.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值