次の方法で共有


WM_SYSKEYDOWN メッセージ

ユーザーが F10 キー (メニュー バーをアクティブにする) を押すか、Alt キーを押しながら別のキーを押したときに、キーボード フォーカスを使用してウィンドウに投稿されます。 また、現在キーボード フォーカスがあるウィンドウがない場合にも発生します。この場合、 WM_SYSKEYDOWN メッセージはアクティブ ウィンドウに送信されます。 メッセージを受信するウィンドウでは、 lParam パラメーターのコンテキスト コードを確認することで、これら 2 つのコンテキストを区別できます。

#define WM_SYSKEYDOWN                   0x0104

パラメーター

wParam

押されているキーの仮想キー コード。 「仮想キー コード」を参照してください。

lParam

次の表に示すように、繰り返し数、スキャン コード、拡張キー フラグ、コンテキスト コード、前のキー状態フラグ、および遷移状態フラグ。

Bits 説明
0-15 現在のメッセージの繰り返し数。 値は、ユーザーがキーを押した結果としてキーストロークが自動レプリケートされる回数です。 キーストロークが十分に長く保持されている場合は、複数のメッセージが送信されます。 ただし、繰り返し数は累積されません。
16-23 スキャン コード。 値は OEM によって異なります。
24 キーが拡張キー (拡張 101 キーまたは 102 キー キーボードに表示される右側の Alt キーや Ctrl キーなど) であるかどうかを示します。 拡張キーの場合、値は 1 です。それ以外の場合は 0 です。
25-28 予約;は使用しないでください。
29 コンテキスト コード。 Alt キーが押されている間に Alt キーがダウンしている場合、値は 1 です。ウィンドウにキーボード フォーカスがないため、 WM_SYSKEYDOWN メッセージがアクティブ ウィンドウに投稿される場合は 0 です。
30 以前のキーの状態。 メッセージが送信される前にキーがダウンしている場合は 1、キーが稼働している場合は 0 です。
31 遷移状態。 WM_SYSKEYDOWN メッセージの値は常に 0 です。

詳細については、「 キーストローク メッセージ フラグ」を参照してください。

戻り値

このメッセージを処理する場合、アプリケーションは 0 を返す必要があります。

注釈

DefWindowProc 関数は、指定したキーを調べ、キーが TAB または ENTER の場合はWM_SYSCOMMAND メッセージを生成します。

コンテキスト コードが 0 の場合、メッセージを TranslateAccelerator 関数に渡すことができます。これにより、文字キー メッセージではなく通常のキー メッセージであるかのように処理されます。 これにより、アクティブ ウィンドウにキーボード フォーカスがない場合でも、アクティブ ウィンドウでアクセラレータ キーを使用できます。

自動繰り返しのため、 WM_SYSKEYUP メッセージが 送信される前に、複数 のWM_SYSKEYDOWN メッセージが発生する可能性があります。 前のキー状態 (ビット 30) を使用して、 WM_SYSKEYDOWN メッセージが最初のダウン遷移を示すか、または繰り返しダウン遷移を示すかを判断できます。

拡張 101 キーキーボードと 102 キー キーボードの場合、拡張キーはキーボードの メイン セクションの右 Alt キーと Ctrl キーです。テンキーの左側にあるクラスターの INS、DEL、HOME、END、PAGE UP、PAGE DOWN、および方向キー、およびテンキーの除算 (/) キーと ENTER キーです。 他のキーボードでは、 lParam パラメーターで拡張キー ビットをサポートしている場合があります。

このメッセージは、ユーザーが Alt キーを押さずに F10 キーを押すたびにも送信されます。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Winuser.h (Windows.h を含む)

こちらもご覧ください