加速鍵

加速鍵

加速鍵也稱為鍵盤快捷鍵,一個加速鍵是一個或幾個按鍵的組合,它用於激活特定的命令,使用加速鍵不需要費力移動滑鼠就能激活選單項。隨著用戶對應用程式越來越熟悉,加速鍵正是他們進一步增加應用程式使用速度所需的快捷方法。

基本信息

加速鍵,即熱鍵,快捷鍵。是產生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值。

相關詞條

相關搜尋

熱門詞條

聯絡我們