ModifyMenu的用法

关于这个API,MSDN讲得实在有点晦涩,这里总结一下。

假设要更改以下菜单的Disable Sampling项文本为EnableSampling

  • 首先应该获取submenu父菜单的句柄,假设submenu的资源ID号为IDR_MENU2,使用以下代码:
1     hMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MENU2));
2     hMenu = GetSubMenu(hMenu, 0);
  • 然后,因为submenu父菜单的起始索引为0,所以Disable Sampling的索引为5,因为根据索引(编号)来修改菜单,所以ModifyMenu这个API的第三个参数uFlags应该包括MF_BYPOSITION,又因为需要修改的是菜单文本,uFlags应该包括MF_STRING。
  • ModifyMenu的第四个参数(uIDNewItem)允许修改菜单的ID号(菜单资源标示符),由于菜单ID号是跟菜单命令(WM_COMMAND)相关联的,修改菜单ID号会影响菜单命令的正常执行, 所以这里不需要修改菜单的ID号,第四个参数应该填写在资源编辑器中创建菜单时输入的ID号。

所以,将Disable Sampling菜单项的文本修改为Enable Sampling的代码应该如下所示:

1     char *pszMenuText = "Enable Sampling";
2     ModifyMenu(hMenu, 5, MF_STRING | MF_BYPOSITION, 
3         ID_SUBMENU_DISABLESAMPLING, pszMenuText);
 
 
http://www.cnblogs.com/mygmh/archive/2012/10/08/2714829.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值