Meldung „WM_MOUSEWHEEL“

Wird an das Fokusfenster gesendet, wenn das Mausrad 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_MOUSEWHEEL                   0x020A

Parameter

wParam

Das höherwertige Wort gibt den Abstand an, um den das Rad gedreht wird, ausgedrückt in Vielfachen oder Teilungen von WHEEL_DELTA, was 120 ist. Ein positiver Wert bedeutet, dass das Rad von dem*der Benutzer*in weg vorwärts gedreht wurde, ein negativer Wert bedeutet, dass das Rad zu dem*der Benutzer*in hin rückwärts 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 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.

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 (ein frei drehendes Mausrad ohne Kerben) bauen können, um mehr Meldungen pro Umdrehung, aber mit einem kleineren Wert in jeder Meldung zu senden. Um diese Funktion zu nutzen, können Sie entweder die eingehenden Delta-Werte addieren, bis WHEEL_DELTA erreicht ist (so dass 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.

Beachten Sie, dass es keine fwKeys für MSH_MOUSEWHEEL gibt. Andernfalls sind die Parameter genau dieselben wie bei WM_MOUSEWHEEL.

Die Anwendung muss MSH_MOUSEWHEEL an alle eingebetteten Objekte oder Steuerelemente weiterleiten. Die Anwendung muss die Meldung an eine aktive eingebettete OLE-Anwendung senden. Es ist optional, dass die Anwendung sie an ein mit dem Mausrad aktiviertes Steuerelement mit Fokus sendet. Wenn die Anwendung die Meldung an ein Steuerelement sendet, kann sie den Rückgabewert überprüfen, um festzustellen, ob die Meldung verarbeitet wurde. Die Steuerelemente müssen den Wert TRUE zurückgeben, wenn sie die Meldung verarbeiten.

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_KEYSTATE_WPARAM

GET_X_LPARAM

GET_Y_LPARAM

GET_WHEEL_DELTA_WPARAM

HIWORD

LOWORD

mouse_event

Konzept

Mauseingabe

Weitere Ressourcen

GetSystemMetrics

MAKEPOINTS

POINTS

SystemParametersInfo