WM _ XBUTTONDOWN-Meldung

Wird gesendet, wenn der Benutzer die erste oder zweite X-Schaltfläche 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_XBUTTONDOWN                  0x020B

Parameter

wParam

Das Wort mit niedriger Reihenfolge gibt an, ob verschiedene virtuelle Schlüssel ausgeschaltet sind. Dies kann einer oder mehrere der folgenden Werte sein.

Wert Bedeutung
MK _ CONTROL
0x0008
Die STRG-TASTE ist gedrückt.
MK _ LBUTTON
0x0001
Die linke Maustaste ist nach unten geschaltet.
MK _ MBUTTON
0x0010
Die mittlere Maustaste ist gedrückt.
MK _ RBUTTON
0x0002
Die rechte Maustaste ist nach unten geschaltet.
MK _ SHIFT
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.

Das Wort in hoher Reihenfolge gibt an, auf welche Schaltfläche geklickt wurde. Dieses Argument einen der folgenden Werte annehmen.

Wert Bedeutung
XBUTTON1-0x0001
Auf die erste X-Schaltfläche wurde geklickt.
XBUTTON2-0x0002
Auf die zweite X-Schaltfläche wurde geklickt.

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 TRUE zurückgeben. Weitere Informationen zur Verarbeitung des Rückgabewerts finden Sie im Abschnitt Hinweise.

Bemerkungen

Verwenden Sie den folgenden Code, um die Informationen im wParam-Parameter abzurufen:

fwKeys = GET_KEYSTATE_WPARAM (wParam); 
fwButton = GET_XBUTTON_WPARAM (wParam);

Verwenden Sie den folgenden Code, um die horizontale und vertikale Position abzurufen:

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam); 

Wie oben erwähnt, befindet sich die x-Koordinate in der unteren Reihenfolge unter dem Rückgabewert. Die y-Koordinate befindet sich in der hohen Kurzreihenfolge (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 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.

Im Gegensatz zu den _ WM-Meldungen LBUTTONDOWN, WM _ MBUTTONDOWNund WM _ RBUTTONDOWN sollte eine Anwendung TRUE von dieser Nachricht zurückgeben, wenn sie sie verarbeitet. Auf diese Weise kann Software, die diese Nachricht auf Windows Systemen vor Windows 2000 simuliert, bestimmen, ob die Fensterprozedur die Nachricht verarbeitet oder DefWindowProc aufgerufen hat, um sie zu verarbeiten.

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
Winuser.h (windowsx.h einschließen)

Weitere Informationen

Referenz

GET _ KEYSTATE _ WPARAM

GET _ X _ LPARAM

GET _ XBUTTON _ WPARAM

GET _ Y _ LPARAM

GetCapture

SetCapture

WM _ XBUTTONDBLCLK

WM _ XBUTTONUP

Konzept

Mauseingabe

Andere Ressourcen

MAKEPOINTS

PUNKTE