MapVirtualKey功能将虚拟键代码(映射)为扫描代码或字符值,或将扫描代码转换为虚拟键代码。
UINT MapVirtualKey(
UINT 【UCODE】, | //虚拟键代码或扫描代码 |
UINT 【uMapType】 | //翻译来执行 |
); |
参数
【UCODE】
指定密钥的虚拟密钥代码或扫描代码。该值如何解释取决于【uMapType】参数的值。
【uMapType】
指定要执行的翻译。该参数的值取决于【UCODE】参数的值:
值 | 含义 |
0 | 【UCODE】是一个虚拟密钥代码,并被翻译成扫描码。如果是不区分左右键的虚拟键代码,则返回左侧的扫描代码。如果没有翻译,函数返回0。 |
1 | 【UCODE】是一个扫描代码,并被翻译成不区分左键和右键的虚拟键代码。如果没有翻译,函数返回0。 |
2 | 【UCODE】是一个虚拟键代码,并在转换为低位字的值中被转换为一个未移位的字符值。通过设置返回值的顶部位来指示死钥(变音符号)。如果没有翻译,函数返回0。 |
3 | 【UCODE】是一个扫描代码,并被转换为虚拟键代码,区分左键和右键。如果没有翻译,函数返回0。 |
返回值
取决于【UCODE】和【uMapType】的值,返回值是扫描代码,虚拟键代码或字符值。如果没有翻译,返回值为零。
备注
应用程序可以使用MapVirtualKey将扫描代码转换为虚拟代码常量VK_SHIFT,VK_CONTROL和VK_MENU,反之亦然。这些翻译不区分SHIFT,CTRL或ALT键的左和右实例。应用程序可以通过调用【UCODE】 【UCODE】设置为以下虚拟密钥代码常量之一来获取与这些密钥之一的左侧或右侧实例相对应的扫描代码:
VK_LSHIFT | VK_RSHIFT |
VK_LCONTROL | VK_RCONTROL |
VK_LMENU | VK_RMENU |
只有通过GetKeyboardState,SetKeyboardState,GetAsyncKeyState,GetKeyState和MapVirtualKey功能,这些左和右区别常数才可用于应用程序。
也可以看看
GetAsyncKeyState, GetKeyboardState, GetKeyState, SetKeyboardState