近期在看《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标签,打开要编辑的加速键资源

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQkJPT1Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

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

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

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

http://download.csdn.net/my

最新文章

  1. Canvas绘图之平移translate、旋转rotate、缩放scale
  2. Dojo Data Store——统一数据访问接口
  3. vnc
  4. BZOJ 4052: [Cerc2013]Magical GCD
  5. Ibatis.Net 各种配置说明(二)
  6. jQuery制作视频网站的展示效果
  7. 即时通讯UI-聊天界面(UITableView显示左右两人聊天)
  8. How to easily create popup menu for DevExpress treelist z
  9. 14_CXF发布REST服务
  10. Ubuntu Server 14.04 下root无法ssh登陆
  11. java.lang.ClassNotFoundException: org.apache.lucene.store.Directory
  12. vmware安装黑苹果教程
  13. MFC 单文档调用对话框
  14. net start mysql意外终止1607
  15. vue 组件自定义v-model
  16. zabbix-2.4.5的安装配置与使用
  17. Django学习手册 - csrf
  18. Netty简单聊天室
  19. 安装postgis,使用postgis导入shapefile的步骤总结
  20. json获取元素数量

热门文章

  1. 【转】linux下vi命令大全
  2. centos mysql允许远程root登录
  3. CF832B Petya and Exam
  4. 基于openstack平台的几种Cloud DB解决方案
  5. html5——伸缩布局
  6. jQuery——节点操作
  7. WPF中的两个绑定场景
  8. (转)Hibernate的优化方案
  9. 在centos安装 sql server
  10. Git学习总结四(删除)