WM_CONTEXTMENU メッセージ
ユーザーがコンテキスト メニューを表示することをウィンドウに通知します。 ユーザーは、ウィンドウでマウスの右ボタン (右クリック) をクリックするか、Shift キーを押しながら F10 キーを押すか、一部のキーボードで使用できるアプリケーション キー (コンテキスト メニュー キー) を押した可能性があります。
#define WM_CONTEXTMENU 0x007B
パラメーター
-
wParam
-
ユーザーがマウスを右クリックしたウィンドウへのハンドル。 メッセージを受信するウィンドウの子ウィンドウを指定できます。 このメッセージの処理の詳細については、「解説」セクションを参照してください。
-
lParam
-
下位ワードは、マウスクリック時のカーソルの水平位置を画面座標で指定します。
高位ワードは、マウスクリック時のカーソルの垂直位置を画面座標で指定します。
戻り値
戻り値はありません。
解説
ウィンドウでは、 TrackPopupMenu 関数または TrackPopupMenuEx 関数を使用してショートカット メニューを表示することで、このメッセージ を 処理できます。 水平方向と垂直方向の位置を取得するには、次のコードを使用します。
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
ウィンドウにショートカット メニューが表示されない場合は、このメッセージを DefWindowProc 関数に渡す必要があります。 ウィンドウが子ウィンドウの場合、 DefWindowProc は親にメッセージを送信します。 それ以外の場合、指定した位置がウィンドウのキャプションにある場合、DefWindowProc は既定のショートカット メニューを表示します。
DefWindowProc は、WM_RBUTTONUPまたはWM_NCRBUTTONUP メッセージを処理するとき、またはユーザーが Shift + F10 キーを押したときに、WM_CONTEXTMENU メッセージを生成します。 WM_CONTEXTMENU メッセージは、ユーザーが VK_APPS キーを押して離したときにも生成されます。
たとえば、ユーザーが Shift + F10 キーを押すと、コンテキスト メニューがキーボードから生成された場合、x 座標と y 座標は -1 になり、アプリケーションでは、 ではなく現在の選択範囲の位置にコンテキスト メニューが表示されます (xPos、yPos)。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|