Udostępnij za pośrednictwem


komunikat WM_POINTERENTER

Wysłane do okna, gdy nowy wskaźnik przechodzi do zakresu wykrywania w oknie (zatrzymaj wskaźnik) lub gdy istniejący wskaźnik porusza się w granicach okna.

Okno odbiera ten komunikat za pośrednictwem funkcji WindowProc.

! [Ważne]
Aplikacje klasyczne powinny mieć świadomość DPI. Jeśli aplikacja nie rozpozna dpi, współrzędne ekranu zawarte w komunikatach wskaźnika i powiązanych strukturach mogą wydawać się niedokładne z powodu wirtualizacji DPI. Wirtualizacja DPI zapewnia automatyczną obsługę skalowania dla aplikacji, które nie obsługują dpi i są domyślnie aktywne (użytkownicy mogą ją wyłączyć). Aby uzyskać więcej informacji, zobacz Pisanie aplikacji win32 High-DPI.

#define WM_POINTERENTER                 0x0249

Parametry

wParam

Zawiera identyfikator wskaźnika i informacje dodatkowe. Użyj poniższych makr, aby pobrać określone informacje w parametrze wParam.

  • GET_POINTERID_WPARAM(wParam): identyfikator wskaźnika.
  • IS_POINTER_NEW_WPARAM(wParam): wskazuje, czy ten komunikat jest pierwszym komunikatem wygenerowanym przez nowy wskaźnik wprowadzający zakres wykrywania (zatrzymaj wskaźnik).
  • IS_POINTER_INRANGE_WPARAM(wParam): wskazuje, czy ten komunikat został wygenerowany przez wskaźnik, który nie pozostawił zakresu wykrywania. Ta flaga jest zawsze ustawiana dla komunikatów WM_POINTERENTER.
  • IS_POINTER_INCONTACT_WPARAM(wParam): flaga wskazująca, czy ten komunikat został wygenerowany przez wskaźnik, który znajduje się w kontakcie. Ta flaga nie jest ustawiona dla wskaźnika w zakresie wykrywania (zatrzymaj wskaźnik).

lParam

Zawiera lokalizację punktu wskaźnika.

Nuta

Ponieważ wskaźnik może nawiązać kontakt z urządzeniem w obszarze innym niż trywialny, lokalizacja punktu może być uproszczeniem bardziej złożonego obszaru wskaźnika. Jeśli to możliwe, aplikacja powinna używać pełnych informacji o obszarze wskaźnika zamiast lokalizacji punktu.

Użyj poniższych makr, aby pobrać współrzędne ekranu fizycznego punktu.

Wartość zwracana

Jeśli aplikacja przetwarza ten komunikat, powinna zwrócić zero.

Jeśli aplikacja nie przetworzy tego komunikatu, powinna wywołać DefWindowProc.

Uwagi

Powiadomienie WM_POINTERENTER może być używane przez okno do przekazywania opinii użytkownikowi, gdy wskaźnik znajduje się na jego powierzchni lub w inny sposób reagować na obecność wskaźnika na powierzchni.

To powiadomienie jest wysyłane tylko do okna odbierającego dane wejściowe wskaźnika. W poniższej tabeli wymieniono niektóre sytuacje, w których to powiadomienie jest wysyłane.

Akcja Zestaw flag Powiadomienia wysłane do
Nowy wskaźnik wprowadza zakres wykrywania (zatrzymanie wskaźnika). IS_POINTER_NEW_WPARAM
IS_POINTER_INRANGE_WPARAM
Okno, w którym wskaźnik przechodzi do zakresu wykrywania.
Wskaźnik aktywujący przekracza granice okna. IS_POINTER_INRANGE_WPARAM
Okno, w którym wskaźnik został skrzyżowany.

! [Ważne]
Gdy okno utraci przechwycenie wskaźnika i otrzyma powiadomienie o WM_POINTERCAPTURECHANGED, zwykle nie będzie otrzymywać żadnych dalszych powiadomień. Z tego powodu ważne jest, aby nie wprowadzać żadnych założeń w oparciu o parowane równomiernie WM_POINTERDOWN/WM_POINTERUP lub powiadomienia WM_POINTERENTER/WM_POINTERLEAVE.

Gdy dane wejściowe pochodzą z myszy, w wyniku integracji komunikatów myszy i wskaźnika WM_POINTERENTER nie są wysyłane.

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient
Windows 8 [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer
Windows Server 2012 [tylko aplikacje klasyczne]
Nagłówek
Winuser.h (uwzględnij windows.h)

Zobacz też

wiadomości

referencyjne

GET_POINTERID_WPARAM

IS_POINTER_NEW_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM