다음을 통해 공유


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 포인터가 이동한 경계 외부의 창입니다.
포인터가 검색 범위를 벗어났습니다. 해당 없음 포인터가 검색 범위를 벗어나는 창입니다.

! [중요]
창에서 포인터 캡처가 손실되고 WM_POINTERCAPTURECHANGED 알림을 받으면 일반적으로 추가 알림을 받지 않습니다. 따라서 균등하게 페어링된 WM_POINTERDOWN WM_POINTERUP 또는 WM_POINTERLEAVE/알림을WM_POINTERENTER/ 가정하지 않는 것이 중요합니다.

입력 디지타이저를 사용하여 접촉이 유지되고 포인터가 창 밖으로 이동하면 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