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