PhysicalToLogicalPointForPerMonitorDPI 함수(winuser.h)

호출자의 dpi(인치당 점 수) 인식에 관계없이 창의 점을 실제 좌표에서 논리적 좌표로 변환합니다. DPI 인식 수준에 대한 자세한 내용은 PROCESS_DPI_AWARENESS.

구문

BOOL PhysicalToLogicalPointForPerMonitorDPI(
  [in]      HWND    hWnd,
  [in, out] LPPOINT lpPoint
);

매개 변수

[in] hWnd

변환이 변환에 사용되는 창에 대한 핸들입니다.

[in, out] lpPoint

변환할 실제/화면 좌표를 지정하는 POINT 구조체에 대한 포인터입니다. 함수가 성공하면 새 논리 좌표가 이 구조체에 복사됩니다.

반환 값

성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.

설명

Windows 8 시스템 DPI 인식 애플리케이션은 PhysicalToLogicalPoint 및LogicalToPhysicalPoint를 사용하여 물리적 공간과 논리 공간 간에 변환됩니다. Windows 8.1 시스템 및 프로세스 간 통신의 추가 가상화는 대부분의 애플리케이션에서 이러한 API가 필요하지 않음을 의미합니다. 따라서 Windows 8.1 이러한 API는 더 이상 지점을 변환하지 않습니다. 시스템은 자체 좌표 공간에서 애플리케이션에 대한 모든 지점을 반환합니다. 이 동작은 대부분의 애플리케이션에 대한 기능을 유지하지만 애플리케이션이 예상대로 작동하는지 확인하기 위해 변경해야 하는 몇 가지 예외가 있습니다.

예를 들어 애플리케이션은 다른 프로세스의 전체 창 트리를 안내하고 시스템에 창에 대한 DPI 종속 정보를 요청해야 할 수 있습니다. 기본적으로 시스템은 호출자의 DPI 인식에 따라 정보를 반환합니다. 대부분의 애플리케이션에 적합합니다. 그러나 호출자는 창과 연결된 애플리케이션의 DPI 인식에 따라 정보가 필요할 수 있습니다. 이는 두 애플리케이션이 서로 간에 직접 DPI 종속 정보를 보내기 때문에 필요할 수 있습니다. 이 경우 애플리케이션은 LogicalToPhysicalPointForPerMonitorDPI 를 사용하여 물리적 좌표를 받은 다음 PhysicalToLogicalPointForPerMonitorDPI 를 사용하여 제공된 HWND의 DPI 인식에 따라 물리적 좌표를 논리적 좌표로 변환할 수 있습니다.

두 애플리케이션을 고려합니다. 하나는 PROCESS_DPI_AWARENESS이 PROCESS_DPI_UNAWARE , 다른 하나는 PROCESS_PER_MONITOR_AWARE 값입니다. PROCESS_PER_MONITOR_AWARE 앱은 배율 인수가 200%(192DPI)인 단일 모니터에 창을 만듭니다. 두 앱이 이 창에서 GetWindowRect 를 호출하면 서로 다른 값을 받게 됩니다. PROCESS_DPI_UNAWARE 앱은 96개의 DPI 좌표를 기반으로 사각형을 수신하고 PROCESS_PER_MONITOR_AWARE 앱은 모니터의 실제 DPI와 일치하는 좌표를 받습니다. PROCESS_DPI_UNAWARE 시스템이 PROCESS_PER_MONITOR_AWARE 앱에 반환한 사각형이 필요한 경우 사각형 모서리에 대해 LogicalToPhysicalPointForPerMonitorDPI를 호출하고 핸들을 PROCESS_PER_MONITOR_AWARE 앱의 창에 전달할 수 있습니다. 이렇게 하면 사각형을 만드는 데 사용할 수 있는 다른 앱의 인식에 따라 포인트가 반환됩니다. 이는 PROCESS_PER_MONITOR_AWARE 모니터의 실제 DPI를 사용하기 때문에 논리 및 물리적 좌표가 동일하기 때문에 작동합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 R2 Windows Server 2012 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-window-l1-1-4(Windows 10 버전 10.0.14393에 도입됨)

추가 정보

LogicalToPhysicalPointForPerMonitorDPI

PROCESS_DPI_AWARENESS