Udostępnij za pośrednictwem


Wprowadzanie myszy

W tej sekcji opisano sposób, w jaki system dostarcza dane wejściowe myszy do aplikacji oraz jak aplikacja odbiera i przetwarza te dane wejściowe.

W tej sekcji

Temat Opis
informacje o danych wejściowych myszy
W tym temacie omówiono wprowadzanie myszy.
przy użyciu wprowadzania myszy
W tej sekcji omówiono zadania związane z wprowadzaniem myszy.
odwołanie do danych wejściowych myszy

Funkcje

Nazwa Opis
_TrackMouseEvent Publikuje komunikaty, gdy wskaźnik myszy opuszcza okno lub umieszcza kursor nad oknem przez określony czas. Ta funkcja wywołuje TrackMouseEvent, jeśli istnieje, w przeciwnym razie emuluje ją.
BlockInput Blokuje zdarzenia klawiatury i danych wejściowych myszy przed dotarciem do aplikacji.
dragDetect Przechwytuje mysz i śledzi jego ruch, aż użytkownik zwolni lewy przycisk, naciśnie ESC lub przesuwa mysz poza prostokąt przeciągania wokół określonego punktu. Szerokość i wysokość prostokąta przeciągania są określane przez SM_CXDRAG i SM_CYDRAG wartości zwracane przez funkcjęGetSystemMetrics.
EnableMouseInPointer Umożliwia myszowi działanie jako urządzenie wskazujące.
EnableWindow Włącza lub wyłącza wprowadzanie myszy i klawiatury do określonego okna lub kontrolki. Gdy dane wejściowe są wyłączone, okno nie odbiera danych wejściowych, takich jak kliknięcia myszy i naciśnięcia. Po włączeniu danych wejściowych okno odbiera wszystkie dane wejściowe.
GetCapture Pobiera uchwyt do okna (jeśli istnieje) przechwycony myszą. Tylko jedno okno jednocześnie może przechwycić mysz; to okno odbiera dane wejściowe myszy, czy kursor znajduje się w jego obramowaniach.
GetDoubleClickTime Pobiera bieżący czas dwukrotnego kliknięcia myszy. Dwukrotne kliknięcie to seria dwóch kliknięć przycisku myszy, drugi występujący w określonym czasie po pierwszym. Czas dwukrotnego kliknięcia to maksymalna liczba milisekund, które mogą wystąpić między pierwszym i drugim kliknięciem dwukrotnego kliknięcia.
GetMouseMovePointsEx Pobiera historię maksymalnie 64 poprzednich współrzędnych myszy lub pióra.
IsWindowEnabled Określa, czy określone okno jest włączone dla wprowadzania myszy i klawiatury.
ReleaseCapture Zwalnia przechwytywanie myszy z okna w bieżącym wątku i przywraca normalne przetwarzanie danych wejściowych myszy. Okno, które przechwyciło mysz, otrzymuje wszystkie dane wejściowe myszy, niezależnie od położenia kursora, z wyjątkiem sytuacji, gdy przycisk myszy jest klikany, gdy kursor znajduje się w oknie innego wątku.
SendInput Syntetyzuje naciśnięcia, ruchów myszy i kliknięć przycisków.
SetCapture Ustawia przechwytywanie myszy na określone okno należące do bieżącego wątku. SetCapture przechwytuje dane wejściowe myszy, gdy mysz jest nad oknem przechwytywania, lub gdy przycisk myszy został naciśnięty, gdy mysz była nad oknem przechwytywania, a przycisk jest nadal w dół. Tylko jedno okno naraz może przechwycić mysz.
Jeśli kursor myszy znajduje się nad oknem utworzonym przez inny wątek, system będzie kierować dane wejściowe myszy do określonego okna tylko wtedy, gdy przycisk myszy nie działa.
SetDoubleClickTime Ustawia dwukrotny czas myszy. Dwukrotne kliknięcie to seria dwóch kliknięć przycisku myszy, drugi występujący w określonym czasie po pierwszym. Czas dwukrotnego kliknięcia to maksymalna liczba milisekund, które mogą wystąpić między pierwszym a drugim kliknięciem dwukrotnego kliknięcia.
SwapMouseButton Odwraca lub przywraca znaczenie przycisków myszy po lewej i prawej stronie.
TrackMouseEvent Publikuje komunikaty, gdy wskaźnik myszy opuszcza okno lub umieszcza kursor nad oknem przez określony czas.

Następująca funkcja jest przestarzała.

Funkcja Opis
mouse_event Syntetyzuje ruch myszy i kliknięcia przycisków.

Powiadomienia

Nazwa Opis
WM_APPCOMMAND Powiadamia okno, że użytkownik wygenerował zdarzenie polecenia aplikacji, na przykład klikając przycisk polecenia aplikacji przy użyciu myszy lub wpisując polecenia aplikacji na klawiaturze.
WM_CAPTURECHANGED Wysłane do okna, które traci przechwytywanie myszy.
WM_LBUTTONDBLCLK Opublikowany, gdy użytkownik klika dwukrotnie lewy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_LBUTTONDOWN Opublikowany, gdy użytkownik naciska lewy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_LBUTTONUP Opublikowany, gdy użytkownik zwalnia lewy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_MBUTTONDBLCLK Opublikowany, gdy użytkownik klika dwukrotnie środkowy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_MBUTTONDOWN Opublikowany, gdy użytkownik naciska środkowy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_MBUTTONUP Opublikowany, gdy użytkownik zwalnia środkowy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_MOUSEACTIVATE Wysłane, gdy kursor znajduje się w nieaktywnym oknie, a użytkownik naciska przycisk myszy. Okno nadrzędne odbiera ten komunikat tylko wtedy, gdy okno podrzędne przekazuje je do funkcji DefWindowProc.
WM_MOUSEHOVER Opublikowano w oknie, gdy kursor znajduje się na obszarze klienta okna przez okres określony w poprzednim wywołaniu TrackMouseEvent.
WM_MOUSEHWHEEL Wysyłane do okna koncentracji uwagi, gdy kółko przewijania myszy jest przechylone lub obracane. FunkcjaDefWindowProcpropaguje 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.
WM_MOUSELEAVE Opublikowany w oknie, gdy kursor opuszcza obszar klienta okna określonego w poprzednim wywołaniu TrackMouseEvent.
WM_MOUSEMOVE Opublikowano w oknie po przesunięciu kursora. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna zawierającego kursor. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
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.
WM_NCHITTEST Wysłane do okna w celu określenia, jaka część okna odpowiada określonej współrzędnej ekranu. Może się to zdarzyć na przykład wtedy, gdy kursor zostanie naciśnięty lub zwolniony, albo w odpowiedzi na wywołanie funkcji, takiej jak WindowFromPoint. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_NCLBUTTONDBLCLK Opublikowany, gdy użytkownik kliknie dwukrotnie lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCLBUTTONDOWN Opublikowany, gdy użytkownik naciska lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCLBUTTONUP Opublikowany, gdy użytkownik zwolni lewy przycisk myszy, gdy kursor znajduje się w obszarze nieklientowym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCMBUTTONDBLCLK Opublikowany, gdy użytkownik kliknie dwukrotnie środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientowym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCMBUTTONDOWN Opublikowany, gdy użytkownik naciska środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientowym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCMBUTTONUP Opublikowany, gdy użytkownik zwalnia środkowy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCMOUSEHOVER Opublikowano w oknie, gdy kursor jest umieszczany na obszarze nieklienta okna przez okres określony w poprzednim wywołaniuTrackMouseEvent.
WM_NCMOUSELEAVE Opublikowane w oknie, gdy kursor opuszcza obszar nieklienta okna określonego w poprzednim wywołaniuTrackMouseEvent.
WM_NCMOUSEMOVE Opublikowano w oknie po przeniesieniu kursora w obszarze nieklienta okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCRBUTTONDBLCLK Opublikowany, gdy użytkownik kliknie dwukrotnie prawym przyciskiem myszy, gdy kursor znajduje się w obszarze nieklientnym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCRBUTTONDOWN Opublikowany, gdy użytkownik naciska prawy przycisk myszy, gdy kursor znajduje się w obszarze nieklientnym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCRBUTTONUP Opublikowany, gdy użytkownik zwolni prawy przycisk myszy, gdy kursor znajduje się w obszarze nieklientowym okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCXBUTTONDBLCLK Opublikowano, gdy użytkownik kliknie dwukrotnie XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze innym niż klient okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCXBUTTONDOWN Opublikowano, gdy użytkownik naciska XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze innym niż klient okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_NCXBUTTONUP Opublikowano, gdy użytkownik zwalnia XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze innym niż klient okna. Ta wiadomość jest publikowana w oknie zawierającym kursor. Jeśli okno przechwyciło mysz, ta wiadomość nie zostanie wysłana.
WM_RBUTTONDBLCLK Opublikowany, gdy użytkownik klika dwukrotnie prawym przyciskiem myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_RBUTTONDOWN Opublikowany, gdy użytkownik naciska prawy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_RBUTTONUP Opublikowany, gdy użytkownik zwolni prawy przycisk myszy, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_XBUTTONDBLCLK Opublikowany, gdy użytkownik kliknie dwukrotnie XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_XBUTTONDOWN Opublikowano, gdy użytkownik naciska XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.
WM_XBUTTONUP Opublikowany, gdy użytkownik zwalnia XBUTTON1 lub XBUTTON2, gdy kursor znajduje się w obszarze klienta okna. Jeśli mysz nie zostanie przechwycona, wiadomość zostanie wysłana do okna pod kursorem. W przeciwnym razie wiadomość zostanie wysłana do okna, które przechwyciło mysz.

Struktur

Nazwa Opis
HARDWAREINPUT Zawiera informacje o symulowanym komunikacie wygenerowanym przez urządzenie wejściowe inne niż klawiatura lub mysz.
INPUT Zawiera informacje używane do synchronizowania zdarzeń wejściowych, takich jak naciśnięcia, ruch myszy i kliknięcia myszy.
LASTINPUTINFO Zawiera czas ostatniego wejścia.
MOUSEINPUT Zawiera informacje o symulowanym zdarzeniu myszy.
MOUSEMOVEPOINT Zawiera informacje o lokalizacji myszy we współrzędnych ekranu.
TRACKMOUSEEVENT Używana przez funkcję TrackMouseEvent do śledzenia, kiedy wskaźnik myszy opuszcza okno lub umieszcza kursor nad oknem przez określony czas.