MapVirtualKeyA 関数 (winuser.h)
仮想キー コードをスキャン コードまたは文字値に変換 (マップ) するか、スキャン コードを仮想キー コードに変換します。
構文
UINT MapVirtualKeyA(
[in] UINT uCode,
[in] UINT uMapType
);
パラメーター
[in] uCode
型: UINT
仮想キー コードまたはキーのスキャン コード。 この値の解釈方法は、 uMapType パラメーターの値によって異なります。
[in] uMapType
型: UINT
実行する翻訳。 このパラメーターの値は、 uCode パラメーターの値によって異なります。
値 | 意味 |
---|---|
MAPVK_VK_TO_VSC 0 |
uCode パラメーターは仮想キー コードであり、スキャン コードに変換されます。 左と右のキーを区別しない仮想キー コードの場合は、左側のスキャン コードが返されます。 変換がない場合、関数は 0 を返します。 |
MAPVK_VSC_TO_VK 1 |
uCode パラメーターはスキャン コードであり、左と右のキーを区別しない仮想キー コードに変換されます。 変換がない場合、関数は 0 を返します。 Windows Vista 以降:uCode 値の上位バイトには、拡張スキャン コードを指定する0xe0または0xe1を含めることができます。 |
MAPVK_VK_TO_CHAR 2 |
uCode パラメーターは仮想キー コードであり、戻り値の下位ワードのシフトされていない文字値に変換されます。 デッド キー (分音記号) は、戻り値の最上位ビットを設定することによって示されます。 変換がない場合、関数は 0 を返します。 「解説」を参照してください。 |
MAPVK_VSC_TO_VK_EX 3 |
uCode パラメーターはスキャン コードであり、左と右のキーを区別する仮想キー コードに変換されます。 変換がない場合、関数は 0 を返します。 Windows Vista 以降:uCode 値の上位バイトには、拡張スキャン コードを指定する0xe0または0xe1を含めることができます。 |
MAPVK_VK_TO_VSC_EX 4 |
Windows Vista 以降:uCode パラメーターは仮想キー コードであり、スキャン コードに変換されます。 左と右のキーを区別しない仮想キー コードの場合は、左側のスキャン コードが返されます。 スキャン コードが拡張スキャン コードの場合、返される値の上位バイトには、拡張スキャン コードを指定する0xe0または0xe1が含まれます。 変換がない場合、関数は 0 を返します。 |
戻り値
型: UINT
戻り値は、 uCode と uMapType の値に応じて、スキャン コード、仮想キー コード、または文字値のいずれかです。 変換がない場合、戻り値は 0 になります。
注釈
指定したコードの変換に使用するキーボード レイアウトのハンドルを指定するには、MapVirtualKeyEx 関数を使用します。
アプリケーションは MapVirtualKey を使用して、スキャン コードを仮想キー コード定数VK_SHIFT、VK_CONTROL、VK_MENUに変換できます。その逆も同様です。 これらの変換では、Shift キー、Ctrl キー、または Alt キーの左と右のインスタンスは区別されません。
アプリケーションは、次のいずれかの仮想キー コード定数に uCode を設定して MapVirtualKey を呼び出すことによって、これらのキーの左または右のインスタンスに対応するスキャン コードを取得できます。
- VK_LSHIFT
- VK_RSHIFT
- VK_LCONTROL
- VK_RCONTROL
- VK_LMENU
- VK_RMENU
これらの左および右区別定数は、GetKeyboardState、SetKeyboardState、GetAsyncKeyState、GetKeyState、MapVirtualKey、および MapVirtualKeyEx 関数を介してのみアプリケーションで使用できます。 仮想キー コードの完全な一覧については、「 仮想キー コード」を参照してください。
MAPVK_VK_TO_CHAR モードの仮想キー コードでは、'A'..'Z キーは大文字の 'A' に変換されます。現在のキーボード レイアウトに関係なく、Z' 文字。 仮想キー コードを対応する文字に変換する場合は、 ToAscii 関数を使用します。
注意
winuser.h ヘッダーは、MapVirtualKey をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |