網名館

關於鍵盤速度的一點國小問

關於鍵盤速度的一點國小問
鍵盤加速器函數(Keyboard Accelerator)
函數功能:拷貝加速鍵表。拷貝加速鍵表函數拷貝指定的加速鍵表。此函數用於獲得與一加速鍵表句柄相對應的加速鍵表數據,或用於確定加速鍵表數據的大小。
函數原型:int CopyAcceleratorTable(HACCEL hAccelSRC,LPACCEL IpAcceIDst,int cAccelEntries);
參數:
hAccelSrc:欲拷貝的加速鍵表的句柄。
IpAccelDst:指向ACCEL結構數組的指針,該結構數組中存在着將要拷貝的加速鍵表信息。
cAccelEntries:指定由IpAcceIDst參數指向的欲拷貝到緩衝區的ACCEL結構的個數。
返回值:如果IpAccelDst為空,則返回值給出初始加速鍵表入口的個數。否則,給出己拷貝的加速鍵表的入口個數。
速查:WindOWS NT:3.1及以上版本:Windows:95及以上版本;Windows CE:不支持;頭文件:Winuser.h;庫文件:;Unicode:在Windows NT上實現為Unicode和ANSI兩種版本。

  CreateAcceleratorTable

函數功能:創建加速鍵表。該函數創建一個加速鍵表。
函數原型:HACCEL CreateAcceleratorTable(LPACCEL lpaccl,int cEntries);
參數:
Ipaccl:指向描述加速鍵表的ACCEL結構數組的指針。
cEntires:指定數組中ACCEL結構的個數。
返回值:如果函數調用成功,則返回值為所創建的加速鍵表的句柄;否則,返回值為空。若想獲得更多的錯誤信息,請調用GetLastError。
備註:關閉應用程序之前,必須調用DestroyAcceeleratorTable函數撤消所有由CreatedAccelerstorTable函數創建的加速鍵表。
速查:Windows NT:3.1u及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:頭文件:winuser.h;庫文件:; Unicode:在Windows NT上實現為Unicode和ANSI兩種版本。

DestroyAcceleratorTable

函數功能:撤消加速鍵表。該函數撤消一個加速鍵表。在關閉應用程序之前,必須使用該函數撤消所有由DestroyAcceleratorTable函數創建的加速鍵表。
函數原型: BOOL DestroyAcceleratorTable(HACCEL hAccel);
參數:
hAccdel:將被撤消的加速鍵表的句柄。該句柄必須己通過調用DestroyAcceleratorTable 函數而創建。
返回值:若函數調用成功,則返回非零值,若函數調用失敗,則返回值為零。若要獲得更多的錯誤信息,可以調用GetLastError函數。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:Windows.h;庫文件:。

  LoadAccelerators

函數功能:調入加速鍵表。該函數調入指定的加速鍵表。
函數原型:HACCEL LoadAccelerators(HINSTANCE hlnstance,LPCTSTR lpTableName);
參數:
hlnstance:模塊的一個事例的句柄,該模塊的可執行文件中包含將要調入的加速鍵表。
IpTableName:指向一個以空結尾的字符串的指針,該字符串包含了即將調入的加速鍵表的名字。另一種可選的方案是,該參數可以在加速鍵表資源的低位字中指定資源標識符,而高位字中全零。MADEINTRESOURCE宏可被用於創建該值。
返回值:若函數調用成功,則返回非零值。若函數調用失敗,則返回值為零。若要獲得更多的錯誤信息,可以調用GetLastError函數。
備註:若加速鍵表尚未裝入,該函數可從指定的可執行文件中將它裝入。從資源中裝入的加速鍵表,在程序結束時可自動釋放。Windows CE:資源不被拷貝到RAM中,因而不能被修改。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;頭文件:winuser.h;庫文件:;Uncode:在Windows NT上實現為Unicode和ANSI兩種版本。

 TranslateAccelerator

函數功能:翻譯加速鍵表。該函數處理菜單命令中的加速鍵。該函數將一個WM-DEYDOUN或WM-SYSDEYDOWN消息翻譯或一個WM-COMMAND或WM-SYSCOMMAND消息(如果在給定的加速鍵表中有該鍵的入口),然後將WM-COMMAND或WM-SYSCOMMAND消息直接送到相應的窗口處理過程。
TranslateAccelerator直到窗口過程處理完消息後才返回。
函數原型:int TranslateAccelerator(HWND hWnd,HACCEL hAccTable,LPMSG IpMsg);
參數:
hWnd:窗口句柄,該窗口的消息將被翻譯。
hAccTable:加速鍵表句柄。加速鍵表必須由LoadAccelerators函數調用裝入或由CreateAccd_eratorTable函數調用創建。
LpMsg:MSG結構指針,MSG結構中包含了從使用GeTMessage或PeekMessage函數調用線程消息隊列中得到的消息內容。
返回值:若函數調用成功,則返回非零值;若函數調用失敗,則返回值為零。若要獲得更多的錯誤信息,可調用GetLastError函數。
備註:為了將該函數發送的消息與菜單或控制發送的消息區別開來,使WM_COMMAND或WM_SYSCOMMAND消息的wParam參數的高位字值為1。用於從窗口菜單中選擇菜單項的加速鍵組合被翻譯成WM-SYSCOMMAND消息:所有其他的加速鍵組合被翻譯成WM-COMMAND。若TransLateAccelerator返回非零值且消息已被翻譯,應用程序就不能調用TranslateMessage函數對消息再做處理。每個加速鍵不一定都對應於菜單命令。若加速鍵命令對應於菜單項,則WM-INITMEMU和WM-INITMENUPOPUP消息將被髮送到應用程序,就好像用户正試圖顯示該菜單。然而,如下的任一條件成立時,這些消息將不被髮送:
           窗口被禁止,菜單項被禁止。
    加速鍵組合無相應的窗口菜單項且窗口己被最小化。鼠標抓取有效。有關鼠標抓取消息,參看SetCapture函數。若指定的窗口為活動窗口且窗口無鍵盤焦點(當窗口最小化時一般是這種情況),TranslatMssage翻譯WM-SYSDEYUP和WM-SYSKEYDOWN消息而不是WM-DEYUP和WM-DEYDOWN消息。
當按下相應於某菜單項的加速鍵,而包含該菜單的窗口又已被最小化時,TranslateMessage不發送WM-COMMAND消息。但是,若按下與窗口菜單或某單項的任一項均不對應的加速鍵時,TranslateMessage將發送一WM-COMMAND消息,即使窗口己被最小化。
   Windows CE:所有的加速鍵消息被翻譯成WM-COMMAND消息;Windows CE不支持WM-SYSCOMMAND消息。
速查:Windows NT:3.1 及以上版本;Windows:95及以上版本:Windows CE:1.0及以上版本;頭文件:windows.h;庫文件:; Unicode:在Windows NT實現為Unicode和ANSI兩種版本。
標籤:鍵盤 國小