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 |
|
Siehe auch
-
Referenz
-
Konzept
-
Weitere Ressourcen