WM _ MOUSEWHEEL-Meldung
Wird an das Fokusfenster gesendet, wenn das Mausrad gedreht wird. Die DefWindowProc-Funktion gibt die Nachricht an das übergeordnete Element des Fensters weiter. Es sollte keine interne Weiterleitung der Nachricht geben, da DefWindowProc sie an die übergeordnete Kette weiterleitet, bis ein Fenster gefunden wird, das sie verarbeitet.
Ein Fenster empfängt diese Nachricht über seine WindowProc-Funktion.
#define WM_MOUSEWHEEL 0x020A
Parameter
-
wParam
-
Das Oberordnungswort gibt den Abstand an, in dem das Rad gedreht wird, ausgedrückt in Vielfachen oder Unterteilungen von WHEEL _ DELTA, d. b. 120. Ein positiver Wert gibt an, dass das Rad vor dem Benutzer gedreht wurde. Ein negativer Wert gibt an, dass das Rad rückwärts in Richtung des Benutzers gedreht wurde.
Das Wort in niedriger Reihenfolge gibt an, ob verschiedene virtuelle Schlüssel nicht mehr verwendet werden können. Dieser Parameter kann einen 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. - MK _ MBUTTON-0x0010
Die mittlere Maustaste ist nach unten. - MK _ RBUTTON-0x0002
Die rechte Maustaste ist nach unten. - MK _ UMSCHALT 0X0004
Die UMSCHALTTASTE ist heruntergefahren. - MK _ XBUTTON1-0x0020
Die erste X-Schaltfläche ist nicht mehr zu sehen. - MK _ XBUTTON2-0x0040
Die zweite X-Schaltfläche ist nicht mehr zu sehen. -
lParam
-
Das Wort in niedriger Reihenfolge gibt die x-Koordinate des Zeigers relativ zur oberen linken Ecke des Bildschirms an.
Das obere Wort gibt die y-Koordinate des Zeigers relativ zur oberen linken Ecke des Bildschirms an.
Rückgabewert
Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie 0 (null) zurückgeben.
Bemerkungen
Verwenden Sie den folgenden Code, um die Informationen im wParam-Parameter zu erhalten:
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
Verwenden Sie den folgenden Code, um die horizontale und vertikale Position zu erhalten:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Wie bereits erwähnt, befindet sich die x-Koordinate in der niedrigen Reihenfolge unter dem Rückgabewert. Die y-Koordinate befindet sich in der hohen Kurzen (beide stellen signierte Werte dar, da sie negative Werte auf Systemen mit mehreren Monitoren übernehmen können). Wenn der Rückgabewert einer Variablen zugewiesen wird, können Sie das MAKEPOINTS-Makro verwenden, um eine POINTS-Struktur aus dem Rückgabewert zu erhalten. Sie können auch das GET _ X _ LPARAM- oder GET _ _ Y-LPARAM-Makro 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 haben, und LOWORD und HIWORD behandeln die Koordinaten als Mengen ohne Vorzeichen.
Die Raddrehung ist ein Vielfaches von WHEEL _ DELTA, das auf 120 festgelegt ist. Dies ist der Schwellenwert für die zu ergreifende Aktion, und eine solche Aktion (z. B. scrollen um ein Inkrement) sollte für jedes Delta erfolgen.
Das Delta wurde auf 120 festgelegt, um Microsoft oder anderen Anbietern zu ermöglichen, feiner auflösende Rollen (ein frei drehendes Rad ohne Notches) zu erstellen, um mehr Nachrichten pro Drehung zu senden, jedoch mit einem kleineren Wert in jeder Nachricht. Um dieses Feature zu verwenden, können Sie entweder die eingehenden Deltawerte hinzufügen, bis WHEEL _ DELTA erreicht ist (bei einer Deltarotation erhalten Sie also die gleiche Antwort) oder teilgeraden Zeilen als Reaktion auf die häufigeren Nachrichten scrollen. Sie können auch Ihre Scrollgranularität auswählen und Deltas ansammeln, bis sie erreicht ist.
Beachten Sie, dass es keine fwKeys für MSH _ MOUSEWHEEL gibt. Andernfalls sind die Parameter identisch mit für WM _ MOUSEWHEEL.
Es liegt in der Hand der Anwendung, MSH _ MOUSEWHEEL an eingebettete Objekte oder Steuerelemente weiter zu geben. Die Anwendung ist erforderlich, um die Nachricht an eine aktive eingebettete OLE-Anwendung zu senden. Es ist optional, dass die Anwendung sie an ein radfähiges Steuerelement mit Fokus sendet. Wenn die Anwendung die Nachricht an ein Steuerelement sendet, kann sie den Rückgabewert überprüfen, um zu überprüfen, ob die Nachricht verarbeitet wurde. Steuerelemente müssen den Wert TRUE zurückgeben, wenn sie die Nachricht 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 |
|
Weitere Informationen
-
Verweis
-
Konzept
-
Andere Ressourcen