5.2.4 创建加速键
菜单和加速键密切地联系在一起。这两种资源类型联手协作,让用户能更容易地完成任务。我们都知道菜单是分层命令结构的物理表示。加速键提供该结构的快捷方式,以提高用户操作的速度。例如,要创建一个新文件,通常用“FileNew(文件新建)”命令或“Ctrl+N”加速键,两种方法可以产生相同的结果。Visual C++(www.cppentry.com)虽然将菜单和加速键作为两种不同的资源存储。但两种资源使用相同的名称IDR_MAINFRAME。因为该名称是将两种资源(菜单和加速键)链接在一起的资源名。
下面我们以5.2.1小节中创建的工程中添加加速键为例介绍添加加速键的方法。
在集成开发环境(IDE)中单击左侧工作区窗口中的“ResourceView”选项卡,在树型列表中寻找“Accelerator”节点下的“IDR_MAINFRAME”子节点,单击该节点会在右侧客户窗口中打开加速键资源IDR_MAINFRAME的加速键列表,如图5-19所示。IDR_MAINFRAME加速键资源是AppWizard在创建应用程序时默认添加的,一般不需另外创建新的加速键资源。

图5-19 加速键资源编辑界面
双击编辑界面右侧客户区下方的虚线框,打开一个加速键属性编辑对话框,如图5-20所示。在该对话框中即可添加新的加速键。
在属性编辑对话框的“ID”文本框中输入“ID_MOVOE1”,对应“周星驰”菜单项下的“苏乞儿”菜单项的ID,输入完毕后“ID”文本框会自动显示“ID_MOVOE1=数字”,这里的数字表示ID_MOVOE1的数值,一般由Visual C++(www.cppentry.com)自动给出,用户不需要更改。
在“Key”文本框中输入“Y”,选中“Modifiers”区域中的“Ctrl”复选框,取消其他复选框的选取,在“Type”区域中选中“VirtKey”单选按钮,表示使用虚拟键(Virtual Key)。
这样就建立起加速键“Ctrl+Y”和“苏乞儿”菜单项的对应。程序运行后,只需按“Ctrl+Y”键就可以选择“苏乞儿”菜单项,触发相应的命令消息了。
按照步骤 中的方法,加入加速键“Ctrl+L”与“大话西游”菜单项的对应,相应的属性对话框如图5-21所示。

完成加速键的添加后,为了完善用户界面,需要在菜单项标题中添加加速键的说明。
在IDE左侧的“ResourceView”选项卡中,展开“Menu”节点,双击“IDR_TEST1TYPE”进入“IDR_TEST1TYPE”菜单资源编辑界面。然后在IDE右侧客户区中单击“周星驰”菜单项,弹出子菜单,在“苏乞儿”菜单项上双击鼠标左键,弹出属性编辑对话框,将“Caption”文本框中的标题修改为“苏乞儿(&Y)\tCtrl+Y”如图5-22所示。其中“\t”表示“Ctrl+Y”的显示与前面“苏乞儿(&Y)”之间隔一个制表位(Tab)。
参照步骤 的方法,在“大话西游”菜单标题中加上“Ctrl+L”的加速键说明。
添加完加速键后的菜单,如图5-23所示。

这样加速键的创建已经完成。我们按快捷键“Ctrl+Y”与单击“周星驰”→“苏乞儿”的效果是一样的。同样快捷键“Ctrl+L”与单击“周星驰”→“大话西游”的效果也是一样的。
【责任编辑:
杨硕 TEL:(010)68476636-8001】