次の方法で共有


MapVirtualKeyExA 関数 (winuser.h)

仮想キー コードをスキャン コードまたは文字値に変換 (マップ) するか、スキャン コードを仮想キー コードに変換します。 この関数は、入力言語と入力ロケール識別子を使用してコードを変換します。

構文

UINT MapVirtualKeyExA(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

パラメーター

[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 を返します。

[in, out, optional] dwhkl

型: HKL

指定したコードの翻訳に使用する入力ロケール識別子。 このパラメーターには、LoadKeyboardLayout 関数によって以前に返された任意の入力ロケール識別子を指定できます。

戻り値

型: UINT

戻り値は、uCode と uMapTypeの値に応じて、スキャン コード、仮想キー コード、または文字値 。 変換がない場合、戻り値は 0 です。

備考

入力ロケール識別子は、音声テキスト変換、入力メソッド エディター (IME)、またはその他の形式の入力も含めることができるため、キーボード レイアウトよりも広い概念です。

アプリケーション MapVirtualKeyEx を使用して、スキャン コードを仮想キー コード定数 (VK_SHIFTVK_CONTROLVK_MENU) に変換できます。 これらの変換では、Shift キー、Ctrl キー、または Alt キーの左と右のインスタンスは区別されません。

アプリケーションは、uCode を次のいずれかの仮想キー コード定数に設定 MapVirtualKeyEx を呼び出すことによって、これらのキーの左または右のインスタンスに対応するスキャン コードを取得できます。

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

これらの左および右の区別定数は、GetKeyboardStateSetKeyboardStateGetAsyncKeyStateGetKeyStateMapVirtualKey、および MapVirtualKeyEx 関数 を使用してのみ、アプリケーションで使用できます。 仮想キー コードの完全な表については、「仮想キー コードの」を参照してください。

MAPVK_VK_TO_CHAR モードでは、仮想キー コード "A"。Z キーは大文字の 'A' に変換されます。現在のキーボード レイアウトに関係なく、Z' 文字。 仮想キー コードを対応する文字に変換する場合は、ToAscii 関数を使用します。

手記

winuser.h ヘッダーは、MapVirtualKeyEx をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winuser.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll

関連項目