Meldung „WM_MOUSEHWHEEL“

Wird an das aktive Fenster gesendet, wenn das horizontale Mausrad gekippt oder gedreht wird Die Funktion DefWindowProc gibt die Meldung an das übergeordnete Fenster weiter. Es sollte keine interne Weiterleitung der Meldung erfolgen, da DefWindowProc sie in der übergeordneten Kette so lange weitergibt, bis ein Fenster gefunden wird, in dem sie verarbeitet wird.

Ein Fenster empfängt diese Meldung über die WindowProc-Funktion.

#define WM_MOUSEHWHEEL                  0x020E

Parameter

wParam

Das höherwertige Wort gibt den Abstand an, um den das Rad gedreht wird, ausgedrückt in Vielfachen oder Faktoren von WHEEL_DELTA, was auf 120 festgelegt ist. Ein positiver Wert gibt an, dass das Rad nach rechts gedreht wurde. Ein negativer Wert gibt an, dass das Rad nach links gedreht wurde.

Das niederwertige Wort gibt an, 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 Zeigers relativ zur oberen linken Ecke des Bildschirms an.

Das höherwertige Wort gibt die y-Koordinate des Zeigers relativ zur oberen linken Ecke des Bildschirms an.

Rückgabewert

Wenn eine Anwendung diese Meldung verarbeitet, sollte sie 0 (null) zurückgeben.

Hinweise

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

fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_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 zuvor erwähnt, liegt die x-Koordinate im niederwertigen Element short des Rückgabewerts, und die y-Koordinate liegt im höherwertigen Element short. 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 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.

Die Radumdrehung ist ein Vielfaches von WHEEL_DELTA, das auf 120 eingestellt ist. Dies ist der Schwellenwert für die auszuführende Aktion, und für jedes Delta sollte eine solche Aktion (z. B. das Scrollen um ein Inkrement) erfolgen.

Das Delta wurde auf 120 festgelegt, damit Microsoft oder andere Anbieter genauere Mausräder bauen können, z. B. ein frei drehendes Mausrad ohne Kerben, um mehr Meldungen pro Umdrehung, aber mit einem kleineren Wert in jeder Meldung zu senden. Um dieses Feature zu nutzen, können Sie entweder die eingehenden Delta-Werte addieren, bis WHEEL_DELTA erreicht ist – sodass Sie bei einer Delta-Drehung die gleiche Antwort erhalten –, oder Teilzeilen als Antwort auf die häufigeren Meldungen scrollen. Sie können auch Ihre Scrollgranularität auswählen und Deltas akkumulieren, bis diese erreicht ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Minimal unterstützter Server
Windows Server 2008 [nur Desktop-Apps]
Header
Winuser.h (einschließlich Windowsx.h)

Siehe auch

Referenz

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_Y_LPARAM

GET_WHEEL_DELTA_WPARAM

HIWORD

LOWORD

mouse_event

Konzept

Mauseingabe

Weitere Ressourcen

GetSystemMetrics

MAKEPOINTS

POINTS

SystemParametersInfo