WM_SYSKEYUP メッセージ
Alt キーを押しながら押していたキーをユーザーが離すと、キーボード フォーカスがあるウィンドウに投稿されます。 これは、その時点でどのウィンドウにもキーボード フォーカスがない場合にも当てはまります。この場合、WM_SYSKEYUP メッセージが作業中のウィンドウに送信されます。 このメッセージを受信したウィンドウでは、lParam パラメーターのコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。
ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。
#define WM_SYSKEYUP 0x0105
パラメーター
-
wParam
-
押されているキーの仮想キー コード。 「仮想キー コード」を参照してください。
-
lParam
-
次の表に示すように、繰り返し数、スキャン コード、拡張キー フラグ、コンテキスト コード、前のキー状態フラグ、遷移状態フラグ。
Bits 説明 0-15 現在のメッセージの繰り返し数。 値は、ユーザーがキーを押したままにすると自動的に繰り返されるキーストロークの回数です。 繰り返し数は、WM_SYSKEYUP メッセージでは常に 1 つです。 16-23 スキャン コード。 値は、OEM によって異なります。 24 キーが拡張キー (拡張 101 キーまたは 102 キー キーボードの右側の Alt キーや Ctrl キーなど) であるかどうかを示します。 拡張キーの場合、値は 1 です。それ以外の場合は 0 です。 25-28 予約済みです。使用しないでください。 29 コンテキスト コードです。 ALT キーが下がっているときにキーが離されると、値は 1 です。キーボード フォーカスがあるウィンドウがないため、WM_SYSKEYUP メッセージが作業中のウィンドウに投稿されます。 30 以前のキーの状態です。 WM_SYSKEYUP メッセージの値は常に 1 です。 31 遷移の状態です。 WM_SYSKEYUP メッセージの値は常に 1 です。 詳細については、「キーストローク メッセージ フラグ」を参照してください。
戻り値
アプリケーションでこのメッセージを処理する場合は、0 を返す必要があります。
解説
F10 キーまたは Alt キーを離した場合は、DefWindowProc 関数から最上位ウィンドウに WM_SYSCOMMAND メッセージが送信されます。 メッセージの wParam パラメーターは、SC_KEYMENU に設定されます。
コンテキスト コードが 0 の場合、メッセージを TranslateAccelerator 関数に渡すことができるため、文字キー メッセージではなく通常のキー メッセージであるかのように処理されます。 これにより、作業中のウィンドウにキーボード フォーカスがない場合でも、作業中のウィンドウでアクセラレータ キーを使用できます。
拡張 101 キーと 102 キーのキーボードの場合、拡張キーは、キーボードのメイン セクションの右側の Alt キーと Ctrl キー、テンキーの左側にまとめて配置されている INS キー、DEL キー、HOME キー、END キー、PAGE UP キー、PAGE DOWN キー、矢印キー、およびテンキーの除算 (/) キーと ENTER キーです。 他のキーボードは、lParam パラメーターで拡張キー ビットをサポートしている場合があります。
米国以外の拡張 102 キー キーボードの場合、右 Alt キーは Ctrl + Alt キーとして処理されます。 次の表は、ユーザーがこのキーを押して離すと発生するメッセージのシーケンスを示しています。
Message | 仮想キー コード |
---|---|
WM_KEYDOWN | VK_CONTROL |
WM_KEYDOWN | VK_MENU |
WM_KEYUP | VK_CONTROL |
WM_SYSKEYUP | VK_MENU |
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|