WM_NCHITTEST メッセージ
特定の画面座標に対応するウィンドウの部分を決定するために、ウィンドウに送信されます。 たとえば、カーソルが移動した場合、マウス ボタンを押したり離したりした場合、または WindowFromPoint などの関数の呼び出しに応じる場合に、これが発生することがあります。 マウスがキャプチャされない場合、メッセージはカーソルの下のウィンドウに送信されます。 それ以外の場合、メッセージはマウスをキャプチャしたウィンドウに送信されます。
ウィンドウは、WindowProc 関数を介してこのメッセージを受け取ります。
#define WM_NCHITTEST 0x0084
パラメーター
-
wParam
-
このパラメーターは使用されません。
-
lParam
-
下位ワードは、カーソルの x 座標を指定します。 座標は画面の左上隅を基準にしています。
上位ワードはカーソルの y 座標を指定します。 座標は画面の左上隅を基準にしています。
戻り値
DefWindowProc 関数の戻り値は、カーソルのホット スポットの位置を示す次のいずれかの値です。
リターン コード/戻り値 | 説明 |
---|---|
|
サイズ変更の境界線がないウィンドウの境界線内。 |
|
サイズ変更可能なウィンドウの下部の水平方向の境界線内 (ユーザーはマウスをクリックして垂直方向にウィンドウのサイズを変更できます)。 |
|
サイズ変更可能なウィンドウの境界線の左下隅 (ユーザーはマウスをクリックして斜め方向にウィンドウのサイズを変更できます)。 |
|
サイズ変更可能なウィンドウの境界線の右下隅 (ユーザーはマウスをクリックしてウィンドウの斜め方向にサイズを変更できます)。 |
|
タイトル バー内。 |
|
クライアント領域内。 |
|
[閉じる] ボタン内。 |
|
画面の背景またはウィンドウ間の分割線上 (HTNOWHERE と同じですが、DefWindowProc 関数によってエラーを示すシステム ビープ音が生成される点が異なります)。 |
|
サイズ ボックス内 (HTSIZE と同じ)。 |
|
[ヘルプ] ボタン内。 |
|
水平スクロール バー内。 |
|
サイズ変更可能なウィンドウの左の境界線内 (ユーザーはマウスをクリックして水平方向にウィンドウのサイズを変更できます)。 |
|
メニュー内。 |
|
[最大化] ボタン内。 |
|
[最小化] ボタン内。 |
|
画面の背景またはウィンドウ間の分割線上。 |
|
[最小化] ボタン内。 |
|
サイズ変更可能なウィンドウの右の境界線内 (ユーザーはマウスをクリックして水平方向にウィンドウのサイズを変更できます)。 |
|
サイズ ボックス内 (HTSIZE と同じ)。 |
|
ウィンドウ メニュー内または子ウィンドウの [閉じる] ボタン内。 |
|
ウィンドウの水平方向の上部境界線内。 |
|
ウィンドウの境界線の左上隅。 |
|
ウィンドウの境界線の右上隅。 |
|
現在同じスレッド内の別のウィンドウでカバーされているウィンドウ内 (いずれかのウィンドウが HTTRANSPARENT ではないコードを返すまで、メッセージは同じスレッド内の基になるウィンドウに送信されます)。 |
|
垂直スクロール バー内。 |
|
[最大化] ボタン内。 |
解説
水平方向と垂直方向の位置を取得するには、次のコードを使用します。
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
前述のように、x 座標は戻り値の下位 short になり、y 座標は上位 short になります (複数のモニターを持つシステムでは負の値を取ることができるため、両方とも "符号付き" の値を表します)。 戻り値が変数に割り当てられている場合は、MAKEPOINTS マクロを使用して戻り値から POINTS 構造体を取得できます。 また、GET_X_LPARAM マクロまたは GET_Y_LPARAM マクロを使用して、x 座標または y 座標を抽出することもできます。
重要
LOWORD マクロまたは HIWORD マクロを使ってカーソル位置の x 座標と y 座標を抽出しないでください。これらのマクロは、複数のモニターを持つシステム上で正しくない結果を返します。 複数のモニターを持つシステムは負の x 座標と y 座標を持つ場合があり、LOWORD と HIWORD は座標を符号なし数量として扱います。
Windows Vista: 標準のキャプション ボタンを含むカスタム フレームを作成する場合、このメッセージはまず DwmDefWindowProc 関数に渡す必要があります。 これにより、デスクトップ ウィンドウ マネージャー (DWM) はキャプション ボタンのヒット テストを提供できます。 DwmDefWindowProc がメッセージを処理しない場合は、WM_NCHITTEST の処理がさらに必要になる場合があります。
要件
要件 | Value |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
関連項目
-
リファレンス
-
Conceptual
-
その他のリソース