다음을 통해 공유


WM_POINTERLEAVE 메시지

포인터가 검색 범위를 창 위로 나가거나 포인터가 창 경계 밖으로 이동할 때 창으로 전송됩니다.

창은 WindowProc 함수를 통해 이 메시지를 받습니다.

! [중요]
데스크톱 앱은 DPI를 인식해야 합니다. 앱이 DPI를 인식하지 못하는 경우 DPI 가상화로 인해 포인터 메시지 및 관련 구조에 포함된 화면 좌표가 부정확해 보일 수 있습니다. DPI 가상화는 DPI를 인식하지 않고 기본적으로 활성 상태인 애플리케이션에 대한 자동 크기 조정 지원을 제공합니다(사용자가 해제할 수 있음). 자세한 내용은 쓰기 High-DPI Win32 애플리케이션참조하세요.

#define WM_POINTERLEAVE                 0x024A

매개 변수

wParam

포인터 식별자 및 추가 정보를 포함합니다. 다음 매크로를 사용하여 이 정보를 검색합니다.

  • GET_POINTERID_WPARAM(wParam): 포인터 식별자입니다.
  • IS_POINTER_INRANGE_WPARAM(wParam): 이 메시지가 검색 범위를 떠나지 않은 포인터에 의해 생성되었는지 여부를 나타냅니다. 포인터가 창의 검색 범위를 벗어나면 이 플래그가 설정되지 않습니다.
  • IS_POINTER_INCONTACT_WPARAM(wParam): 이 메시지가 접촉하는 포인터에 의해 생성되었는지 여부를 나타내는 플래그입니다. 검색 범위(가리키기)의 포인터에 대해 이 플래그가 설정되지 않았습니다.

lParam

포인터의 점 위치를 포함합니다.

메모

포인터가 사소한 영역을 통해 디바이스와 접촉할 수 있으므로 이 지점 위치는 더 복잡한 포인터 영역의 단순화일 수 있습니다. 가능하면 애플리케이션은 지점 위치 대신 전체 포인터 영역 정보를 사용해야 합니다.

다음 매크로를 사용하여 점의 실제 화면 좌표를 검색합니다.

반환 값

애플리케이션이 이 메시지를 처리하는 경우 0을 반환해야 합니다.

애플리케이션이 이 메시지를 처리하지 않으면 DefWindowProc호출해야 합니다.

발언

창에서 WM_POINTERLEAVE 알림을 사용하여 모드를 변경하거나 포인터가 창 화면 위에 있는 동안 사용자에게 피드백을 중지할 수 있습니다.

이 알림은 포인터에 대한 입력을 수신하는 창으로만 전송됩니다. 다음 표에서는 이 알림이 전송되는 몇 가지 상황을 나열합니다.

행동 플래그 집합 보낸 알림
가리키기 포인터가 창 경계를 넘습니다. IS_POINTER_INRANGE_WPARAM 포인터가 이동한 경계 외부의 창입니다.
포인터가 검색 범위를 벗어났습니다. 해당(N/A) 포인터가 검색 범위를 벗어나는 창입니다.

! [중요]
창이 포인터 캡처를 잃고 WM_POINTERCAPTURECHANGED 알림을 받으면 일반적으로 추가 알림을 받지 않습니다. 이러한 이유로 균등하게 쌍을 이루는 WM_POINTERDOWN/WM_POINTERUP 또는 WM_POINTERENTER/WM_POINTERLEAVE 알림을 기반으로 어떠한 가정도 하지 않는 것이 중요합니다.

입력 디지타이저를 사용하여 연락처를 유지하고 포인터가 창 밖으로 이동하면 WM_POINTERLEAVE 생성되지 않습니다. WM_POINTERLEAVE 마우스 포인터가 창 경계를 넘거나 연락처가 종료되는 경우에만 생성됩니다.

입력이 마우스 디바이스에서 시작된 경우 WM_POINTERLEAVE 게시된 메시지 큐에 게시됩니다.

요구 사항

요구
지원되는 최소 클라이언트
Windows 8 [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2012 [데스크톱 앱만 해당]
머리글
Winuser.h(Windows.h 포함)

참고 항목

메시지

참조

GET_POINTERID_WPARAM

IS_POINTER_INRANGE_WPARAM

IS_POINTER_INCONTACT_WPARAM