Udostępnij za pośrednictwem


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
Winuser.h (w tym Windowsx.h)

Zobacz też

referencyjne

GET_KEYSTATE_WPARAM

GET_X_LPARAM

GET_Y_LPARAM

GET_WHEEL_DELTA_WPARAM

HIWORD

LOWORD

mouse_event

koncepcyjne

danych wejściowych myszy

innych zasobów

GetSystemMetrics

MAKEPOINTS

PUNKTÓW

SystemParametersInfo