您可以通过在应用程序的资源定义文件中使用ACCELERATORS语句来创建一个加速器表资源。您必须为加速器表分配名称或资源标识符,最好与任何其他资源不同。Windows使用此标识符在运行时加载资源。
您定义的每个加速器需要在加速表中单独输入。在每个条目中,您定义生成加速器和加速器标识符的击键(ASCII字符代码或虚拟键代码)。您还必须指定是否必须与ALT,SHIFT或CTRL键结合使用键盘。有关虚拟键的详细信息,请参阅键盘输入.
通过将ASCII字符包含在双引号中或通过使用与ASCII标志相结合的字符的整数值来指定ASCII键。以下示例显示如何定义ASCII加速器。
"A", ID_ACCEL1 ; SHIFT+A
65, ID_ACCEL2, ASCII ; SHIFT+A
虚拟键代码按键的指定取决于键盘是字母数字键还是非字母数字键。对于字母数字键,用双引号括起来的键的字母或数字与VIRTKEY标志组合。对于非字母数字键,特定键的Windows虚拟键代码与VIRTKEY标志相结合。以下示例说明如何定义虚拟键代码加速器。
"a", ID_ACCEL3, VIRTKEY ; A (caps-lock on) or a
VK_INSERT, ID_ACCEL4, VIRTKEY ; INSERT key
以下示例显示了加速器表资源,用于定义文件操作的加速器。资源的名称是FileAccel。
FileAccel加速器
BEGIN
VK_F12, IDM_OPEN, CONTROL, VIRTKEY ; CTRL+F12
VK_F4, IDM_CLOSE, ALT, VIRTKEY ; ALT+F4
VK_F12, IDM_SAVE, SHIFT, VIRTKEY ; SHIFT+F12
VK_F12, IDM_SAVEAS, VIRTKEY ; F12
END
如果要使用户按加速键敲击ALT,SHIFT或CTRL键,请在加速器定义中指定ALT,SHIFT和CONTROL标志。以下是一些例子。
"B", ID_ACCEL5, ALT ; ALT_SHIFT+B
"I", ID_ACCEL6, CONTROL, VIRTKEY ; CTRL+I
VK_F5, ID_ACCEL7, CONTROL, ALT, VIRTKEY ; CTRL+ALT+F5
默认情况下,当加速键对应于菜单项时,Windows将突出显示菜单项。您可以使用NOINVERT标志来防止单个加速器突出显示。以下示例显示如何使用NOINVERT标志。
VK_DELETE, ID_ACCEL8, VIRTKEY, SHIFT, NOINVERT ; SHIFT+DELETE
要定义与应用程序中的菜单项相对应的加速器,请将加速器包含在菜单项的文本中。以下示例显示如何在资源定义文件中的菜单项文本中包含加速器。
FilePopup菜单
BEGIN
POPUP“&文件”
BEGIN
MENUITEM“&新..”,IDM_NEW
MENUITEM“&打开\\ tCtrl + F12”,IDM_OPEN
MENUITEM“&关闭\\ tAlt + F4”IDM_CLOSE
MENUITEM“&保存\\ tShift + F12”,IDM_SAVE
MENUITEM“将&另存为...\\ tF12”,IDM_SAVEAS
END
END