次の方法で共有


WM_LBUTTONDOWN メッセージ

ユーザーがマウスの左ボタンを押し、カーソルがウィンドウのクライアント領域にあるときに投稿されます。 マウスがキャプチャされていない場合、メッセージはカーソルの下のウィンドウに投稿されます。 それ以外の場合、メッセージは、マウスをキャプチャしたウィンドウに投稿されます。

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

#define WM_LBUTTONDOWN                  0x0201

パラメーター

wParam を する

さまざまな仮想キーがダウンしているかどうかを示します。 このパラメーターには、次の値のうち 1 つ以上を指定できます。

価値 意味
MK_CONTROL
0x0008
Ctrl キーがダウンしています。
MK_LBUTTON
0x0001
マウスの左ボタンが下に表示されます。
MK_MBUTTON
0x0010
マウスの中央ボタンが下にあります。
MK_RBUTTON
0x0002
マウスの右ボタンが下に表示されます。
MK_SHIFT
0x0004
Shift キーがダウンしています。
MK_XBUTTON1
0x0020
XBUTTON1がダウンしています。
MK_XBUTTON2
0x0040
XBUTTON2がダウンしています。

lParam

下位ワードは、カーソルの x 座標を指定します。 座標は、クライアント領域の左上隅を基準にしています。

高次ワードは、カーソルの y 座標を指定します。 座標は、クライアント領域の左上隅を基準にしています。

戻り値

アプリケーションがこのメッセージを処理すると、0 が返されます。

LRESULT CALLBACK WndProc(_In_ HWND hWnd, _In_ UINT msg, _In_ WPARAM wParam, _In_ LPARAM lParam)
{
    POINT pt;

    switch (msg)
    {

    case WM_LBUTTONDOWN:
            {
                pt.x = GET_X_LPARAM(lParam);
                pt.y = GET_Y_LPARAM(lParam);
            }
        break;

    default:
        return DefWindowProc(hWnd, msg, wParam, lParam);
    }
    return 0;
}

その他の例については、GitHub Windows クラシック サンプル を参照してください。

備考

前述のように、x 座標は戻り値の下位 短い になります。y 座標は高次 短い にあります (複数のモニターを持つシステムでは負の値を取ることができるので、どちらも 符号付き 値を表します)。 戻り値が変数に割り当てられている場合は、MAKEPOINTS マクロを使用して、戻り値から POINTS 構造体を取得できます。 GET_X_LPARAM または GET_Y_LPARAM マクロを使用して、x 座標または y 座標を抽出することもできます。

大事な

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

Alt キーが押されたことを検出するには、GetKeyState が VK_MENU 0 で かどうかを確認します。 これは GetAsyncKeyStateすることはできません。

必要条件

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

関連項目

リファレンス

GET_X_LPARAM

GET_Y_LPARAM

GetCapture の

GetKeyState の

SetCapture の

WM_LBUTTONDBLCLK

WM_LBUTTONUP

概念

マウス入力 の

その他のリソース を する

MAKEPOINTS を する

ポイント を する