加速键


加速键

文章插图
加速键【加速键】加速键也称为键盘快捷键 , 一个加速键是一个或几个按键的组合 , 它用于激活特定的命令 , 使用加速键不需要费力移动滑鼠就能激活选单项 。随着用户对应用程式越来越熟悉 , 加速键正是他们进一步增加应用程式使用速度所需的快捷方法 。
基本介绍中文名:加速键
外文名:Accelerator Key
别名:快捷键、热键
功能:激活特定的命令
常用键:F1 , F2 , BackSpace
基本信息加速键 , 即热键 , 快捷键 。是产生WM_COMMAND讯息(有些情况下是WM_SYSCOMMAND)的键组合 。许多时候 , 程式使用加速键来重複常用功能表项的动作(然而 , 加速键还可以用于执行非功能表功能) 。例如 , 许多Windows程式都有一个包含「Delete」或「Clear」选项的「Edit」功能表 , 这些程式习惯上都将Del键指定为该选项的加速键 。使用者可以通过「 Alt 键」从功能表中选择「 Delete 」选项 , 或者只需按下加速键 Del。当视窗讯息处理程式收到一个WM_COMMAND讯息时 , 它不必确定使用的是功能表还是加速键 。加速键资源在资源描述档案中定义加速键资源在资源描述档案中加速键资源的定义形式与选单定义相似 , 加速键定义的格式为:加速键名 ACCELERATORS , 加速键标识(ID) , [类型][NOINVERT][ALT][SHIFT][CONTROL]其中:加速键标识:与所表示的选单项标识相同的标识值;类型:标识该键为标準键还是虚拟键;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值 。