WM _ LBUTTONDOWN-Meldung
Wird gesendet, 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 Meldung an das Fenster unterhalb des Cursors gesendet. Andernfalls wird die Nachricht an das Fenster gesendet, in dem die Maus erfasst wurde.
Ein Fenster empfängt diese Meldung über seine WindowProc-Funktion.
#define WM_LBUTTONDOWN 0x0201
Parameter
-
wParam
-
Gibt an, ob verschiedene virtuelle Schlüssel ausgeschaltet sind. Bei diesem Parameter kann es sich um einen oder mehrere der folgenden Werte handelt.
Wert Bedeutung - MK _ CONTROL
- 0x0008
Die STRG-TASTE ist gedrückt. - MK _ LBUTTON
- 0x0001
Die linke Maustaste ist unten. - MK _ MBUTTON
- 0x0010
Die mittlere Maustaste ist gedrückt. - MK _ RBUTTON
- 0x0002
Die rechte Maustaste ist nach unten geschaltet. - MK _ UMSCHALT
- 0X0004
Die UMSCHALTTASTE ist nicht mehr gedrückt. - MK _ XBUTTON1-0x0020
Die erste X-Schaltfläche ist ausgeschaltet. - MK _ XBUTTON2
- 0x0040
Die zweite X-Schaltfläche ist nicht mehr angezeigt. -
lParam
-
Das Wort mit niedriger Reihenfolge gibt die x-Koordinate des Cursors an. Die Koordinate ist relativ zur oberen linken Ecke des Clientbereichs.
Das Wort in hoher Reihenfolge 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 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 Windows klassischen Beispielen auf GitHub.
Bemerkungen
Wie oben erwähnt, befindet sich die x-Koordinate in der unteren Reihenfolge unter dem Rückgabewert. die y-Koordinate ist in der hohen Reihenfolge kurz (beide stellen Signiertwerte dar, da sie negative Werte auf Systemen mit mehreren Monitoren annehmen können). Wenn der Rückgabewert einer Variablen zugewiesen wird, können Sie das MAKEPOINTS-Makro verwenden, um eine POINTS-Struktur aus dem Rückgabewert abzurufen. Sie können auch das MAKRO GET _ X _ LPARAM oder GET _ Y _ LPARAM verwenden, um die x- oder y-Koordinate zu extrahieren.
Wichtig
Verwenden Sie nicht die LOWORD- oder HIWORD-Makros, um die x- und y-Koordinaten der Cursorposition zu extrahieren, da diese Makros falsche Ergebnisse auf Systemen mit mehreren Monitoren zurückgeben. 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, dass die ALT-Taste gedrückt wurde, überprüfen Sie, ob GetKeyState mit VK _ MENU < 0. Beachten Sie, dass dies nicht GetAsyncKeyStatesein darf.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
| Header |
|
Weitere Informationen
-
Referenz
-
Konzept
-
Andere Ressourcen