共用方式為


WM_LBUTTONDOWN訊息

當使用者按下滑鼠左鍵時,游標位於視窗的工作區時張貼。 如果未擷取滑鼠,訊息就會張貼到游標下方的視窗。 否則,訊息會張貼至擷取滑鼠的視窗。

視窗會透過其 WindowProc 函式接收此訊息。

#define WM_LBUTTONDOWN                  0x0201

參數

wParam

指出各種虛擬金鑰是否已關閉。 此參數可以是下列其中一或多個值。

意義
MK_CONTROL
0x0008
CTRL 鍵已關閉。
MK_LBUTTON
0x0001
滑鼠左鍵已關閉。
MK_MBUTTON
0x0010
滑鼠中間按鈕已關閉。
MK_RBUTTON
0x0002
滑鼠右鍵已關閉。
MK_SHIFT
0x0004
SHIFT 鍵已關閉。
MK_XBUTTON1
0x0020
第一個 X 按鈕已關閉。
MK_XBUTTON2
0x0040
第二個 X 按鈕已關閉。

lParam

低序字會指定游標的 x 座標。 座標相對於工作區的左上角。

高序字會指定游標的 Y 座標。 座標相對於工作區的左上角。

傳回值

如果應用程式處理此訊息,它應該會傳回零。

範例

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 座標。

重要

請勿使用 LOWORD 或 HIWORD 宏來擷取游標位置的 x 和 y 座標,因為這些宏會在具有多個監視器的系統上傳回不正確的結果。 具有多個監視器的系統可以有負 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