WM_LBUTTONDOWN-Meldung
Diese Meldung wird übermittelt, wenn Benutzer*innen die linke Maustaste drücken, während sich der Cursor im Clientbereich eines Fensters befindet. Wenn die Maus nicht erfasst wird, wird die Nachricht an das Fenster unter dem Cursor übermittelt. Andernfalls wird die Nachricht an das Fenster gesendet, in dem die Maus erfasst wurde.
Ein Fenster empfängt diese Meldung über die WindowProc-Funktion.
#define WM_LBUTTONDOWN 0x0201
Parameter
-
wParam
-
Hiermit wird angegeben, ob verschiedene virtuelle Tasten gedrückt sind. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert Bedeutung - MK_CONTROL
- 0x0008
Die STRG-TASTE ist gedrückt. - MK_LBUTTON
- 0x0001
Die linke Maustaste ist gedrückt. - MK_MBUTTON
- 0x0010
Die mittlere Maustaste ist gedrückt. - MK_RBUTTON
- 0x0002
Die rechte Maustaste ist gedrückt. - MK_SHIFT
- 0x0004
Die UMSCHALTTASTE ist gedrückt. - MK_XBUTTON1
- 0x0020
Die erste X-Taste ist ausgefallen. - MK_XBUTTON2
- 0x0040
Die zweite X-Taste ist ausgefallen. -
lParam
-
Das niederwertige Wort gibt die X-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Clientbereichs.
Das höherwertige Wort gibt die Y-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Clientbereichs.
Rückgabewert
Wenn eine Anwendung diese Meldung verarbeitet, sollte sie 0 (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.
Hinweise
Wie zuvor erwähnt, liegt die X-Koordinate im niedrigerwertigen short-Element des Rückgabewerts, die Y-Koordinate im höherwertigen short-Element (beide stellen Werte mit Vorzeichen Werte dar, da sie auf Systemen mit mehreren Monitoren negative Werte annehmen können). Wenn der Rückgabewert einer Variablen zugewiesen ist, können Sie das Makro MAKEPOINTS verwenden, um eine Struktur POINTS aus dem Rückgabewert abzurufen. Sie können das Makro GET_X_LPARAM oder GET_Y_LPARAM auch verwenden, um die X- bzw. Y-Koordinate zu extrahieren.
Wichtig
Verwenden Sie nicht die LOWORD- oder HIWORD-Makros, um die X- und Y-Koordinaten der Cursorposition zu extrahieren. Diese Makros geben auf Systemen mit mehreren Monitoren falsche Ergebnisse zurück. Systeme mit mehreren Monitoren können negative X- und Y-Koordinaten aufweisen, und LOWORD und HIWORD behandeln die Koordinaten als Mengen ohne Vorzeichen.
Um zu erkennen, ob die ALT-Taste gedrückt wurde, überprüfen Sie, ob GetKeyState mit VK_MENU< gleich 0 ist. 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 |
|
Siehe auch
-
Referenz
-
Konzept
-
Weitere Ressourcen