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标签,打开要编辑的加速键资源
双击空白项出现例如以下图的对话框
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
最新文章
- Canvas绘图之平移translate、旋转rotate、缩放scale
- Dojo Data Store——统一数据访问接口
- vnc
- BZOJ 4052: [Cerc2013]Magical GCD
- Ibatis.Net 各种配置说明(二)
- jQuery制作视频网站的展示效果
- 即时通讯UI-聊天界面(UITableView显示左右两人聊天)
- How to easily create popup menu for DevExpress treelist z
- 14_CXF发布REST服务
- Ubuntu Server 14.04 下root无法ssh登陆
- java.lang.ClassNotFoundException: org.apache.lucene.store.Directory
- vmware安装黑苹果教程
- MFC 单文档调用对话框
- net start mysql意外终止1607
- vue 组件自定义v-model
- zabbix-2.4.5的安装配置与使用
- Django学习手册 - csrf
- Netty简单聊天室
- 安装postgis,使用postgis导入shapefile的步骤总结
- json获取元素数量