[MFC]Shapes程序(4):菜单项的加速键、MFC注释宏

1. 加速键的作用:之前已经讲过了,就是比快捷键还快的按法,一般快捷键需要Alt+顶层菜单项的字母键+子菜单中菜单项的字母键,如果子菜单还有层叠子菜单,则还要再加一个层叠子菜单中菜单项的字母键,而加速键MFC规定,最多只能定义两个键组合,比如Ctrl+N之类的;


2. 编写加速键资源:

    1) 加速键也是一种资源,也需要用.rc脚本来定义,加载方式和菜单资源差不多;

    2) 定义菜单需要关键字MENU以及菜单资源名,定义加速键同样也需要资源名,当然资源名可以任取,而关键字则成为了ACCELERATORS;

    3) 先看下面一个典型的加速键资源的定义:

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE
BEGIN
	"N",			ID_FILE_NEW,			VIRTKEY, CONTROL
	"O",			ID_FILE_OPEN,			VIRTKEY, CONTROL
	"S",			ID_FILE_SAVE,			VIRTKEY, CONTROL

	"Z",			ID_EDIT_UNDO,			VIRTKEY, CONTROL
	VK_BACK,		ID_EDIT_UNDO,			VIRTKEY, ALT

	"X",			ID_EDIT_CUT,			VIRTKEY, CONTROL
	VK_DELETE,		ID_EDIT_CUT,			VIRTKEY, SHIFT

	"C",			ID_EDIT_COPY,			VIRTKEY, CONTROL
	VK_INSERT,		ID_EDIT_COPY,			VIRTKEY, CONTROL

	"V",			ID_EDIT_COPY,			VIRTKEY, CONTROL
	VK_INSERT,		ID_EDIT_COPY,			VIRTKEY, SHIFT
END
         i. 资源属性PRELOAD和MOVEABLE都是16位的产物,32位环境下不起作用;

         ii. BEGIN-END中的每一行都定义了一个加速键以及加速键对应的菜单命令;

         iii. 每行第一项定义的是加速键的虚拟键代码,注意!对于控制键,例如DELETE、HOME、INSERT等都有相应的虚拟键代码宏,即上面出现的以VK_作为前缀的宏,即Virtual Key的缩写,但是对于正常的英文字符以及阿拉伯数字在任何系统中都没有定义过虚拟键代码宏,只能通过字符串(及双引号"")的形式表示;

!虚拟键代码对应的是键盘上的每个按键,注意和ASCII码区别,ASCII码里字母有大小写之分,但是在键盘上就只有26个英文字母键而不是26个小写字母键和大写字母键,虚拟键码是键盘直接产生的,是一种硬编码,而ASCII码是这种硬编码进入操作系统后转化而成的,因此在.rc文件中就暂且先用ASCII码来代替虚拟键代码宏,而第三项的VIRTKEY关键字则提示编译器,第一项是虚拟键代码,编译器会将ASCII字符替换成真正的虚拟键代码;

!Rc.exe的编译规则:首先会先进行预处理&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值