VkKeyScanA 関数 (winuser.h)

[この関数は 、VkKeyScanEx 関数に置き換わりました。 ただし、キーボード レイアウトを指定する必要がない場合は、 VkKeyScan を引き続き使用できます。

文字を、現在のキーボードの対応する仮想キー コードとシフト状態に変換します。

構文

SHORT VkKeyScanA(
  [in] CHAR ch
);

パラメーター

[in] ch

種類: TCHAR

仮想キー コードに変換される文字。

戻り値

種類: SHORT

関数が成功した場合、戻り値の下位バイトには仮想キー コードが含まれており、上位バイトにはシフト状態が含まれます。これは、次のフラグ ビットの組み合わせになります。

戻り値 説明
1
Shift キーが押されます。
2
Ctrl キーを押します。
4
Alt キーを押します。
8
半角キーを押す
16
予約済み (キーボード レイアウト ドライバーによって定義されます)。
32
予約済み (キーボード レイアウト ドライバーによって定義されます)。
 

渡された文字コードに変換されるキーが関数で見つからない場合、下位バイトと上位バイトの両方に –1 が含まれます。

注釈

右側の Alt キーをシフト キーとして使用するキーボード レイアウト (たとえば、フランス語のキーボード レイアウト) の場合、右側の Alt キーは内部的に Ctrl + Alt に変換されるため、シフトの状態は値 6 で表されます。

テンキー (VK_NUMPAD0 から VK_DIVIDE) の翻訳は無視されます。 この関数は、メイン キーボード セクションからのみ文字をキーストロークに変換することを目的としています。 たとえば、文字 "7" はVK_NUMPAD7ではなくVK_7に変換されます。

VkKeyScan は、 メッセージのWM_KEYUPWM_KEYDOWN を使用して文字を送信するアプリケーションで使用されます。

注意

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

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

こちらもご覧ください