komunikat WM_MOUSEWHEEL
Wysłane do okna koncentracji uwagi po obróceniu kółka myszy. 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_MOUSEWHEEL 0x020A
Parametry
-
wParam
-
Słowo o wysokiej kolejności wskazuje odległość obracania koła, wyrażoną w wielokrotnościach lub podziałach WHEEL_DELTA, czyli 120. Wartość dodatnia wskazuje, że koło zostało obrócone do przodu, z dala od użytkownika; wartość ujemna wskazuje, że koło zostało obrócone do tyłu w kierunku użytkownika.
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 następującego 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 będzie wielokrotny WHEEL_DELTA, który jest ustawiony 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 (wolnego 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.
Należy pamiętać, że dla MSH_MOUSEWHEELnie ma fwKeys . W przeciwnym razie parametry są dokładnie takie same jak w przypadku WM_MOUSEWHEEL.
Aplikacja przekazuje MSH_MOUSEWHEEL do wszystkich osadzonych obiektów lub kontrolek. Aplikacja jest wymagana do wysłania komunikatu do aktywnej osadzonej aplikacji OLE. Opcjonalnie aplikacja wysyła ją do kontrolki z włączoną obsługą kół z fokusem. Jeśli aplikacja wysyła komunikat do kontrolki, może sprawdzić wartość zwracaną, aby sprawdzić, czy komunikat został przetworzony. Kontrolki są wymagane do zwrócenia wartości TRUE, jeśli przetwarzają komunikat.
Wymagania
Wymaganie | Wartość |
---|---|
Minimalny obsługiwany klient |
Windows 2000 Professional [tylko aplikacje klasyczne] |
Minimalny obsługiwany serwer |
Windows 2000 Server [tylko aplikacje klasyczne] |
Nagłówek |
|
Zobacz też
-
referencyjne
-
LOWORD
-
koncepcyjne
-
danych wejściowych myszy -
innych zasobów
-
PUNKTÓW