VkKeyScanA 関数 (winuser.h)
[この関数は 、VkKeyScanEx 関数に置き換わりました。 ただし、キーボード レイアウトを指定する必要がない場合は、 VkKeyScan を引き続き使用できます。
文字を、現在のキーボードの対応する仮想キー コードとシフト状態に変換します。
構文
SHORT VkKeyScanA(
[in] CHAR ch
);
パラメーター
[in] ch
種類: TCHAR
仮想キー コードに変換される文字。
戻り値
種類: SHORT
関数が成功した場合、戻り値の下位バイトには仮想キー コードが含まれており、上位バイトにはシフト状態が含まれます。これは、次のフラグ ビットの組み合わせになります。
戻り値 | 説明 |
---|---|
|
Shift キーが押されます。 |
|
Ctrl キーを押します。 |
|
Alt キーを押します。 |
|
半角キーを押す |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
|
予約済み (キーボード レイアウト ドライバーによって定義されます)。 |
渡された文字コードに変換されるキーが関数で見つからない場合、下位バイトと上位バイトの両方に –1 が含まれます。
注釈
右側の Alt キーをシフト キーとして使用するキーボード レイアウト (たとえば、フランス語のキーボード レイアウト) の場合、右側の Alt キーは内部的に Ctrl + Alt に変換されるため、シフトの状態は値 6 で表されます。
テンキー (VK_NUMPAD0 から VK_DIVIDE) の翻訳は無視されます。 この関数は、メイン キーボード セクションからのみ文字をキーストロークに変換することを目的としています。 たとえば、文字 "7" はVK_NUMPAD7ではなくVK_7に変換されます。
VkKeyScan は、 メッセージのWM_KEYUP と WM_KEYDOWN を使用して文字を送信するアプリケーションで使用されます。
注意
winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして VkKeyScan を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |