次の方法で共有


WM_NCXBUTTONDBLCLK メッセージ

カーソルがウィンドウの非クライアント領域内にあるときに、1 つ目または 2 つ目の [X] ボタンをダブルクリックすると投稿されます。 このメッセージは、カーソルを含むウィンドウに投稿されます。 ウィンドウがマウスを取り込んだ場合、このメッセージは投稿されません。

ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。

#define WM_NCXBUTTONDBLCLK              0x00AD

パラメーター

wParam

下位ワードは、WM_NCHITTEST メッセージを処理することで DefWindowProc 関数によって返されたヒットテスト値を指定します。 ヒット テスト値の一覧については、WM_NCHITTEST に関するページを参照してください。

上位ワードは、どのボタンがダブルクリックされたかを示します。 次のいずれかの値を指定できます。

Value 意味
XBUTTON1
0x0001
1 番目の X ボタンがダブルクリックされました。
XBUTTON2
0x0002
2 つ目の [X] ボタンがダブルクリックされました。

lParam

カーソルの x 座標と y 座標を含む POINTS 構造体へのポインターです。 座標は、画面の左上隅を起点とした相対座標です。

戻り値

アプリケーションがこのメッセージを処理すると、TRUE が返されます。 戻り値の処理の詳細については、「解説」セクションを参照してください。

解説

wParam パラメーターの情報を取得するには、次のコードを使用します。

nHittest = GET_NCHITTEST_WPARAM(wParam); 
fwButton = GET_XBUTTON_WPARAM(wParam); 

次のコードを使用して、lParam から x 座標と y 座標を取得することもできます。

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

重要

LOWORD マクロまたは HIWORD マクロを使ってカーソル位置の x 座標と y 座標を抽出しないでください。これらのマクロは、複数のモニターを持つシステム上で正しくない結果を返します。 複数のモニターを持つシステムは、負の x 座標と y 座標を持つ場合があり、LOWORDHIWORD は座標を符号なし数量として扱います。

既定で、DefWindowProc 関数では、指定したポイントをテストしてカーソルの位置を取得し、適切なアクションが実行されます。 必要に応じて、WM_SYSCOMMAND メッセージがウィンドウに送信されます。

ウィンドウには、WM_NCXBUTTONDBLCLK メッセージを受信するための CS_DBLCLKS スタイルは必要ありません。 ユーザーが X ボタンを押して離し、ダブルクリック時間制限内にもう一度押すと、WM_NCXBUTTONDBLCLK メッセージがシステムによって生成されます。 これらのボタンのいずれかをダブルクリックすると、実際には、WM_NCXBUTTONDOWNWM_NCXBUTTONUPWM_NCXBUTTONDBLCLK、そして再び WM_NCXBUTTONUP の 4 つのメッセージが生成されます。

WM_NCLBUTTONDBLCLKWM_NCMBUTTONDBLCLKWM_NCRBUTTONDBLCLK メッセージとは異なり、アプリケーションでこのメッセージを処理した場合は、TRUE を返す必要があります。 これにより、Windows 2000 より前の Windows システムでこのメッセージをシミュレーションするソフトウェアで、ウィンドウ プロシージャでメッセージが処理されたか、DefWindowProc が呼び出され処理されたかを判断できます。

要件

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

関連項目

リファレンス

DefWindowProc

GET_X_LPARAM

GET_Y_LPARAM

WM_NCHITTEST

WM_NCXBUTTONDOWN

WM_NCXBUTTONUP

WM_SYSCOMMAND

Conceptual

マウス入力

その他のリソース

MAKEPOINTS

POINTS