Freigeben über


WM_MOUSEWHEEL Nachricht

Wird an das Fokusfenster gesendet, wenn das Mausrad gedreht wird. Die DefWindowProc Funktion verteilt die Nachricht an das übergeordnete Fenster. Es sollte keine interne Weiterleitung der Nachricht geben, da DefWindowProc die übergeordnete Kette weitergibt, bis ein Fenster gefunden wird, das sie verarbeitet.

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

#define WM_MOUSEWHEEL                   0x020A

Parameter

wParam-

Das Wort mit hoher Reihenfolge gibt den Abstand an, den das Rad gedreht wird, ausgedrückt in Vielfachen oder Divisionen von WHEEL_DELTA, was 120 ist. Ein positiver Wert gibt an, dass das Rad vorwärts gedreht wurde, weg vom Benutzer; Ein negativer Wert gibt an, dass das Rad rückwärts in Richtung des Benutzers gedreht wurde.

Das Wort mit niedriger Reihenfolge gibt an, ob verschiedene virtuelle Schlüssel nach unten angeordnet sind. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
MK_CONTROL
0x0008
Die STRG-TASTE ist nach unten.
MK_LBUTTON
0x0001
Die linke Maustaste ist unten.
MK_MBUTTON
0x0010
Die mittlere Maustaste ist unten.
MK_RBUTTON
0x0002
Die rechte Maustaste ist unten.
MK_SHIFT
0x0004
Die UMSCHALTTASTE ist nach unten.
MK_XBUTTON1
0x0020
Die XBUTTON1 ist unten.
MK_XBUTTON2
0x0040
Die XBUTTON2 ist unten.

lParam-

Das Wort mit niedriger Reihenfolge gibt die X-Koordinate des Zeigers relativ zur oberen linken Bildschirmecke an.

Das Wort mit hoher Reihenfolge gibt die Y-Koordinate des Zeigers relativ zur oberen linken Bildschirmecke an.

Rückgabewert

Wenn eine Anwendung diese Meldung verarbeitet, sollte sie Null zurückgeben.

Bemerkungen

Verwenden Sie den folgenden Code, um die Informationen im wParam--Parameter 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 oben erwähnt, befindet sich die X-Koordinate in der niedrigen Reihenfolge kurzen des Rückgabewerts; Die Y-Koordinate befindet sich in der hohen Reihenfolge kurzen (beide stellen signierten 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 MAKEPOINTS Makro verwenden, um eine POINTS- Struktur aus dem Rückgabewert abzurufen. 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 aufweisen und LOWORD- und HIWORD- die Koordinaten als nicht signierte Mengen behandeln.

Die Raddrehung ist ein Vielfaches von WHEEL_DELTA, das auf 120 festgelegt ist. Dies ist der Schwellenwert für die auszuführende Aktion, und eine solche Aktion (z. B. das Scrollen eines Inkrements) sollte für jedes Delta auftreten.

Das Delta wurde auf 120 festgelegt, damit Microsoft oder andere Anbieter feiner auflösende Räder (ein frei drehendes Rad ohne Noten) erstellen können, um mehr Nachrichten pro Drehung zu senden, aber mit einem kleineren Wert in jeder Nachricht. Um dieses Feature zu verwenden, können Sie entweder die eingehenden Delta-Werte hinzufügen, bis WHEEL_DELTA erreicht ist (also für eine Delta-Drehung, die Sie dieselbe Antwort erhalten), oder Teilzeilen als Reaktion auf die häufigeren Nachrichten scrollen. Sie können auch die Granularität des Bildlaufs auswählen und Deltas ansammeln, bis sie erreicht ist.

Beachten Sie, dass für MSH_MOUSEWHEELkeine fwKeys- vorhanden sind. Andernfalls sind die Parameter genau mit WM_MOUSEWHEELidentisch.

Es liegt an der Anwendung, MSH_MOUSEWHEEL an eingebettete Objekte oder Steuerelemente weiterzuleiten. Die Anwendung ist erforderlich, um die Nachricht an eine aktive eingebettete OLE-Anwendung zu senden. Es ist optional, dass die Anwendung sie an ein Rad-fähiges Steuerelement mit Fokus sendet. Wenn die Anwendung die Nachricht an ein Steuerelement sendet, kann der Rückgabewert überprüft werden, um festzustellen, ob die Nachricht verarbeitet wurde. Steuerelemente müssen einen Wert von TRUE- zurückgeben, wenn sie die Nachricht verarbeiten.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client
Windows 2000 Professional [nur Desktop-Apps]
Mindestens unterstützter Server
Windows 2000 Server [nur Desktop-Apps]
Kopfball
Winuser.h (enthalten Windowsx.h)

Siehe auch

Referenz-

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_Y_LPARAM

GET_WHEEL_DELTA_WPARAM

HIWORD-

LOWORD-

mouse_event

Konzeptionelle

Mauseingabe-

andere Ressourcen

GetSystemMetrics-

MAKEPOINTS-

POINTS

SystemParametersInfo-