Udostępnij za pośrednictwem


komunikat WM_LBUTTONDOWN

Opublikowany, gdy użytkownik naciska lewy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.

Okno odbiera ten komunikat za pośrednictwem funkcji WindowProc.

#define WM_LBUTTONDOWN                  0x0201

Parametry

wParam

Wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być co najmniej jedną z następujących wartości.

Wartość Znaczenie
MK_CONTROL
0x0008
CTRL nie działa.
MK_LBUTTON
0x0001
Lewy przycisk myszy jest wyłączony.
MK_MBUTTON
0x0010
Środkowy przycisk myszy jest wyłączony.
MK_RBUTTON
0x0002
Prawy przycisk myszy jest wyłączony.
MK_SHIFT
0x0004
SHIFT jest wyłączony.
MK_XBUTTON1
0x0020
XBUTTON1 nie działa.
MK_XBUTTON2
0x0040
XBUTTON2 nie działa.

lParam

Wyraz o niskiej kolejności określa współrzędną x kursora. Współrzędna jest względna względem lewego górnego rogu obszaru klienta.

Wyraz o wysokiej kolejności określa współrzędną y kursora. Współrzędna jest względna względem lewego górnego rogu obszaru klienta.

Wartość zwracana

Jeśli aplikacja przetwarza ten komunikat, powinna zwrócić zero.

Przykład

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;
}

Aby uzyskać więcej przykładów, zobacz Windows Classic Samples w witrynie GitHub.

Uwagi

Jak wspomniano powyżej, współrzędna x znajduje się w krótkiej wartości zwracanej; współrzędna y znajduje się w krótkim (obie reprezentują wartości podpisane, ponieważ mogą przyjmować wartości ujemne w systemach z wieloma monitorami). Jeśli wartość zwracana jest przypisana do zmiennej, możesz użyć makra MAKEPOINTS, aby uzyskać strukturę POINTS z wartości zwracanej. Możesz również użyć makra GET_X_LPARAM lub GET_Y_LPARAM, aby wyodrębnić współrzędną x lub y.

Ważny

Nie należy używać LOWORD lub makr HIWORD wyodrębnić współrzędne x i y położenia kursora, ponieważ te makra zwracają nieprawidłowe wyniki w systemach z wieloma monitorami. Systemy z wieloma monitorami mogą mieć współrzędne ujemne x i y, a LOWORD i HIWORD traktują współrzędne jako ilości niepodpisane.

Aby wykryć, że ALT został naciśnięty, sprawdź, czy GetKeyState z VK_MENU< 0. Należy pamiętać, że nie może to być getAsyncKeyState.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient
Windows 2000 Professional [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer
Windows 2000 Server [tylko aplikacje klasyczne]
Nagłówek
Winuser.h (w tym Windowsx.h)

Zobacz też

referencyjne

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

koncepcyjne

danych wejściowych myszy

innych zasobów

MAKEPOINTS

PUNKTÓW