当前位置:首页 科普知识 加速键

加速键

发布时间:2023-09-15 13:55:48

加速键

加速键也称为键盘快捷键,一个加速键是一个或几个按键的组合,它用于激活特定的命令,使用加速键不需要费力移动鼠标就能激活菜单项。随着用户对应用程序越来越熟悉,加速键正是他们进一步增加应用程序使用速度所需的快捷方法。

加速键,即热键,快捷键。是产生WM_COMMAND讯息(有些情况下是WM_SYSCOMMAND)的键组合。许多时候,程式使用加速键来重复常用功能表项的动作(然而,加速键还可以用于执行非功能表功能)。例如,许多Windows程式都有一个包含「Delete」或「Clear」选项的「Edit」功能表,这些程式习惯上都将Del键指定为该选项的加速键。使用者可以通过「 Alt 键」从功能表中选择「 Delete 」选项,或者只需按下加速键 Del 。当视窗讯息处理程式收到一个WM_COMMAND讯息时,它不必确定使用的是功能表还是加速键。

加速键资源

在资源描述文件中定义加速键资源

在资源描述文件中加速键资源的定义形式与菜单定义相似,加速键定义的格式为:

加速键名 ACCELERATORS,加速键标识(ID),

其中:

加速键标识:与所表示的菜单项标识相同的标识值;

类型:标识该键为标准键还是虚拟键;

NOINVERT:表示当使用加速键时,菜单项不高亮度显示;

ALT,SHIFT,CONTROL:表示组合键的组合方式。

常用的加速键有以下两种形式:

(1)″^char″,id

与Ctrl键组合的加速键。例如“文件”菜单中“保存”项的加速键可定义为:

″^S″,IDM_SAVE

(2)nCode,id VIRTKEY

使用虚拟键作为加速键。虚拟键是系统提供与设备无关的键码,如键盘上的F功能键、方向键、Delete键等。如VK_F1~VK_F12分别代表F1~F12的功能键,VK_DELETE代表删除键等。

加载加速键资源

在应用程序定义加速键资源句柄后,即可通过调用函数LoadAccelerators加载加速键资源,其形式为:

HACCEL hAccel;

hAccel=LoadAccelerators

hInstance, //hInstance为当前程序实例句柄

lpAcceIName //lpAccelName为加速键表名

);

翻译加速键

应用程序使用加速键的目的是快捷地切换到需要的菜单项,因此,应用程序必须完成加速键消息到菜单消息的翻译。该翻译操作经常在应用程序的消息循环中进行,其形式如下:

while(GetMessage(&Msg,NULL,0,0))

{

if(!TranslateAccelerator(hwnd,hAccel,&Mag))

{

TranslateMessage(&Msg);

DispatchMessage(&Msg);

}

}

函数TranslateAccelerator是翻译操作的核心,该函数的原型为:

int TranslateAccelerator

HWND hWnd, //为窗口句柄

HACCEL hAccel, //为加速键表句柄

LPMSG lpMsg //为指向MSG结构的指针

函数 TranslateAccelerator的作用是对照加速键表,将相关的按键消息 WM_KEYDOWN和WM_KEYUP翻译成WM_COMMAND或WM_SYSCOMMAND消息。其特点是将翻译后的WM_COMMAND或WM_SYSCOMMAND消息直接发往窗口,而不在消息队列中等待。消息翻译完成后,函数返回非0值。

温馨提示:
本文【加速键】由作者 教育百科书 转载提供。 该文观点仅代表作者本人, 自学教育网 信息发布平台,仅提供信息存储空间服务, 若存在侵权问题,请及时联系管理员或作者进行删除。
(c)2008-2025 自学教育网 All Rights Reserved 汕头市灵创科技有限公司
粤ICP备2024240640号-6