MapVirtualKey

函式功能:該函式將一虛擬鍵碼翻譯(映射)成一掃描碼或一字元值,或者將一掃描碼翻譯成一虛擬鍵碼。

函式原型:UINT MapVirtualKey(UINT uCode,UINT uMapType)

基本介紹

  • 中文名:MapVirtualKey
  • 頭檔案:winuser.h
  • 庫檔案:user32.lib
  • Windows NT:3.1及以上版本
語法,參數,注意事項,

語法

UINT WINAPI MapVirtualKey(  _In_  UINT uCode,  _In_  UINT uMapType
);

參數

uCode:定義一個鍵的掃描碼或虛擬鍵碼。該值如何解釋依賴於uMapType參數的值。
uMapType:定義將要執行的翻譯。該參數的值依賴於uCode參數的值。取值如下:
0:代表uCode是一虛擬鍵碼且被翻譯為一掃描碼。若一虛擬鍵碼不區分左右,則返回左鍵的掃描碼。若未進行翻譯,則函式返回O。
1:代表uCode是一掃描碼且被翻譯為一虛擬鍵碼,且此虛擬鍵碼不區分左右。若未進行翻譯,則函式返回0。
2:代表uCode為一虛擬鍵碼且被翻譯為一未被移位的字元值存放於返回值的低序字中。死鍵(發音符號)則通過設定返回值的最高位來表示。若未進行翻譯,則函式返回0。
3:代表uCode為一掃描碼且被翻譯為區分左右鍵的一虛擬鍵碼。若未進行翻譯,則函式返回0。
返回值:返回值可以是一掃描碼,或一虛擬鍵碼,或一字元值,這完全依賴於不同的uCode和uMapType的值。若未進行翻譯,則函式返回0。

注意事項

應用程式可以使用MapVirtualKey將掃描碼翻譯為虛擬鍵碼常數VK_SHIFT,VK_CONTROL和VK_MENU。反之亦然。這些翻譯不區分左右shift,ctrl,alt鍵。應用程式可以通過調用MapVirtualKey函式時將uCode參數
設定為如下的虛擬鍵碼常數來獲得分別相應於上述鍵的左右鍵的掃描碼:
VK_LSHIFT,VK_RSHIFT;VK_LCONTROL;VK_RCONTROL;VK_LMENU,VK_RMENU
僅當應用程式調用GetKeyboardState,SetKeyboardState,GetAsyncKeystate, GetKeyState和MapVirtUalKey函式時,才可用這些區分左右鍵的常數。
Windows CE:Windows CE僅支持uMapType參數取值為2的情況,即將虛擬鍵映射為未被移位的字元。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.O及以L版本;頭檔案:winuser.h;庫檔案:user32.lib;在Windows NT上實現為Unicode和ANSI兩種版本。

相關詞條

熱門詞條

聯絡我們