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 [デスクトップ アプリのみ]
ヘッダー
Winuser.h (Windows.h を含む)

関連項目

参照

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

TrackPopupMenu

TrackPopupMenuEx

WM_NCRBUTTONUP

WM_RBUTTONUP

概念

メニュー