MFC的UI更新机制和加速键的创建

       最近在看《MFC Windows程序设计》这本书,正好看到更新菜单中的菜单项和添加菜单项的加速键这方面的内容,以下总一下总结。

MFC提供的更新菜单项的机制如下:

     通过消息映射表中的ON_UPDATE_COMMAND_UI宏,可以给单个的菜单项分配选中的成员函数作为更新处理函数,当用户点中一个下拉菜单时,MFC捕获随之发生的WM_INITMENUPOPUP消息,并调用菜单中的所有菜单项的更新处理函数。每个更新处理函数获得一个指向CCmdUI对象的指针,并利用该对象的成员处理函数更新菜单项。

  顺便介绍一下CCmdUI类

下面是该类的部分成员函数:

void Enable( BOOL bOn = TRUE );

Enables or disables the user-interface item for this command.

使界面的菜单项等有效或者失效。当参数bOn = TRUE的时候,使菜单项有效,反之,使无效。

void SetCheck( int nCheck = 1 );

Sets the check state of the user-interface item for this command

Specifies the check state to set. If 0, unchecks; if 1, checks; and if 2, sets indeterminate

指定菜单项的状态是否被选中,当参数nCheck = 1时,状态为选中,nCheck =0时,状态为未选中,nCheck = 2时,该菜单项的状态不确定。

void SetRadio( BOOL bOn = TRUE );

Like the SetCheck member function, but operates on radio groups.

该函数的设置类似SetCheck ,但是该函数应用于单选组合框中。

void SetText( LPCTSTR lpszText);

Sets the text for the user-interface item for this command.

设置菜单项的正文为参数lpszText的内容

添加菜单项的快捷键的方法

单击工作空间的Resource View标签,打开要编辑的加速键资源

双击空白项出现如下图的对话框

 

在ID处添加上要创建加速键的菜单项ID

在key处添加对应的快捷键的虚拟键代码或者点击Next Key Typed 直接输入所选择的快捷键即可

下面的链接是我实现的快捷键和更新菜单项状态的小程序,供大家参考。

http://download.csdn.net/my



转载于:https://www.cnblogs.com/BBOOT/p/3812671.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值