komunikat WM_MOUSEHWHEEL
Wysyłane do aktywnego okna, gdy kółko przewijania myszy jest przechylone lub obracane. Funkcja DefWindowProc propaguje komunikat do elementu nadrzędnego okna. Nie powinno istnieć wewnętrzne przekazywanie komunikatu, ponieważ DefWindowProc propaguje go w łańcuchu nadrzędnym, dopóki nie znajdzie okna, które go przetwarza.
Okno odbiera ten komunikat za pośrednictwem funkcji WindowProc.
#define WM_MOUSEHWHEEL 0x020E
Parametry
-
wParam
-
Słowo o wysokiej kolejności wskazuje odległość obracania koła, wyrażoną w wielokrotnościach lub czynnikach WHEEL_DELTA, która jest ustawiona na 120. Wartość dodatnia wskazuje, że koło zostało obrócone po prawej stronie; wartość ujemna wskazuje, że koło zostało obrócone z lewej strony.
Wyraz o niskiej kolejności wskazuje, czy różne klucze wirtualne nie działają. Ten parametr może być co najmniej jedną z następujących wartości.
Wartość Znaczenie - MK_CONTROL
- 0x0008
CTRL nie działa. - MK_LBUTTON
- 0x0001
Lewy przycisk myszy jest wyłączony. - MK_MBUTTON
- 0x0010
Środkowy przycisk myszy jest wyłączony. - MK_RBUTTON
- 0x0002
Prawy przycisk myszy jest wyłączony. - MK_SHIFT
- 0x0004
SHIFT jest wyłączony. - MK_XBUTTON1
- 0x0020
XBUTTON1 nie działa. - MK_XBUTTON2
- 0x0040
XBUTTON2 nie działa. -
lParam
-
Wyraz o niskiej kolejności określa współrzędną x wskaźnika względem lewego górnego rogu ekranu.
Wyraz o wysokiej kolejności określa współrzędną y wskaźnika względem lewego górnego rogu ekranu.
Wartość zwracana
Jeśli aplikacja przetwarza ten komunikat, powinna zwrócić zero.
Uwagi
Użyj następującego kodu, aby uzyskać informacje w parametrze wParam.
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
Użyj poniższego kodu, aby uzyskać położenie poziome i pionowe.
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Jak wspomniano powyżej, współrzędna x znajduje się w krótkiej wartości zwracanej; współrzędna y znajduje się w krótkim (obie reprezentują wartości podpisane, ponieważ mogą przyjmować wartości ujemne w systemach z wieloma monitorami). Jeśli wartość zwracana jest przypisana do zmiennej, możesz użyć makra MAKEPOINTS, aby uzyskać strukturę POINTS z wartości zwracanej. Możesz również użyć makra GET_X_LPARAM lub GET_Y_LPARAM, aby wyodrębnić współrzędną x lub y.
Ważny
Nie należy używać LOWORD lub makr HIWORD wyodrębnić współrzędne x i y położenia kursora, ponieważ te makra zwracają nieprawidłowe wyniki w systemach z wieloma monitorami. Systemy z wieloma monitorami mogą mieć współrzędne ujemne x i y, a LOWORD i HIWORD traktują współrzędne jako ilości niepodpisane.
Obrót koła to wielokrotność WHEEL_DELTA, która jest ustawiona na 120. Jest to próg akcji, który ma zostać podjęty, a jedna taka akcja (na przykład przewijanie jednego przyrostu) powinna wystąpić dla każdej różnicy.
Delta została ustawiona na 120, aby umożliwić firmie Microsoft lub innym dostawcom tworzenie bardziej precyzyjnych kół rozpoznawania (na przykład swobodnie obracającego się koła bez wycięć), aby wysyłać więcej komunikatów na rotację, ale z mniejszą wartością w każdym komunikacie. Aby użyć tej funkcji, możesz dodać przychodzące wartości różnicowe do momentu osiągnięcia WHEEL_DELTA (aby uzyskać tę samą odpowiedź) lub przewinąć częściowe wiersze w odpowiedzi na częstsze komunikaty. Możesz również wybrać stopień szczegółowości przewijania i gromadzić różnice do momentu osiągnięcia.
Wymagania
Wymaganie | Wartość |
---|---|
Minimalny obsługiwany klient |
Windows Vista [tylko aplikacje klasyczne] |
Minimalny obsługiwany serwer |
Windows Server 2008 [tylko aplikacje klasyczne] |
Nagłówek |
|
Zobacz też
-
referencyjne
-
LOWORD
-
koncepcyjne
-
danych wejściowych myszy -
innych zasobów
-
PUNKTÓW