WM_LBUTTONDOWN Nachricht

Wird veröffentlicht, wenn der Benutzer die linke Maustaste drückt, während sich der Cursor im Clientbereich eines Fensters befindet. Wenn die Maus nicht erfasst wird, wird die Nachricht im Fenster unter dem Cursor gesendet. Andernfalls wird die Nachricht an das Fenster gesendet, das die Maus erfasst hat.

Ein Fenster empfängt diese Nachricht über seine WindowProc-Funktion .

#define WM_LBUTTONDOWN                  0x0201

Parameter

wParam

Gibt an, ob verschiedene virtuelle Schlüssel ausgefallen sind. Bei diesem Parameter kann es sich um einen oder mehrere der folgenden Werte handeln.

Wert Bedeutung
MK_CONTROL
0x0008
Die STRG-TASTE ist ausgefallen.
MK_LBUTTON
0x0001
Die linke Maustaste ist nach unten.
MK_MBUTTON
0x0010
Die mittlere Maustaste ist aus.
MK_RBUTTON
0x0002
Die rechte Maustaste ist aus.
MK_SHIFT
0x0004
Die UMSCHALTTASTE ist ausgefallen.
MK_XBUTTON1
0x0020
Die erste X-Schaltfläche ist ausgefallen.
MK_XBUTTON2
0x0040
Die zweite X-Schaltfläche ist ausgefallen.

lParam

Das Wort mit niedriger Ordnung gibt die x-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Clientbereichs.

Das Wort mit hoher Ordnung gibt die y-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Clientbereichs.

Rückgabewert

Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie null zurückgeben.

Beispiel

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

Weitere Beispiele finden Sie unter Klassische Windows-Beispiele auf GitHub.

Bemerkungen

Wie oben erwähnt, befindet sich die x-Koordinate in niedriger Reihenfolge unter dem Rückgabewert. Die y-Koordinate befindet sich in hoher Reihenfolge kurz (beide stellen signierte Werte dar, da sie negative Werte auf Systemen mit mehreren Monitoren annehmen können). Wenn der Rückgabewert einer Variablen zugewiesen ist, können Sie das MAKEPOINTS-Makro verwenden, um eine POINTS-Struktur aus dem Rückgabewert abzurufen. Sie können auch das GET_X_LPARAM - oder GET_Y_LPARAM Makro verwenden, um die x- oder y-Koordinate zu extrahieren.

Wichtig

Verwenden Sie die LOWORD - oder HIWORD-Makros nicht, um die x- und y-Koordinaten der Cursorposition zu extrahieren, da diese Makros auf Systemen mit mehreren Monitoren falsche Ergebnisse zurückgeben. Systeme mit mehreren Monitoren können negative x- und y-Koordinaten aufweisen, und LOWORD und HIWORD behandeln die Koordinaten als unsignierte Mengen.

Um zu erkennen, dass die ALT-Taste gedrückt wurde, überprüfen Sie, ob GetKeyState mit VK_MENU< 0. Beachten Sie, dass dies nicht GetAsyncKeyState sein darf.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (einschließlich Windowsx.h)

Siehe auch

Referenz

GET_X_LPARAM

GET_Y_LPARAM

GetCapture

GetKeyState

SetCapture

WM_LBUTTONDBLCLK

WM_LBUTTONUP

Konzept

Mauseingabe

Andere Ressourcen

MAKEPOINTS

PUNKTE