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.
- GET_X_LPARAM(lParam): współrzędna x (punkt poziomy).
- GET_Y_LPARAM(lParam): współrzędna y (punkt pionowy).
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 |
|