EnableNonClientDpiScaling 함수(winuser.h)

높은 DPI 디스플레이에서 는 지정된 최상위 창의 비 클라이언트 영역 부분의 자동 디스플레이 크기 조정을 사용하도록 설정합니다. 해당 창을 초기화하는 동안 호출해야 합니다.

참고DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 DPI_AWARENESS_CONTEXT 실행되는 애플리케이션은 기본적으로 비 클라이언트 영역 의 크기를 자동으로 조정합니다. 이 함수를 호출할 필요가 없습니다.

 

구문

BOOL EnableNonClientDpiScaling(
  [in] HWND hwnd
);

매개 변수

[in] hwnd

자동 크기 조정을 사용하도록 설정해야 하는 창입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다. 함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

이 함수를 호출하면 DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE DPI_AWARENESS_CONTEXT 있는 개별 최상위 창에 대해 비 클라이언트 크기 조정이 가능합니다. 대신 창별 인식을 사용하지 않고 전체 프로세스가 DPI_AWARENESS_PER_MONITOR_AWARE 모드에서 실행되는 경우 이 함수를 호출하면 프로세스의 최상위 창에서 비 클라이언트 크기 조정이 가능합니다.

둘 중 어느 것도 true가 아니거나 다른 창에서 이 메서드를 호출하는 경우 실패하고 0 값을 반환합니다.

최상위 창에 대한 비 클라이언트 크기 조정은 기본적으로 사용하도록 설정되지 않습니다. 이 API를 호출하여 클라이언트가 아닌 영역 크기를 자동으로 조정하려는 각 개별 최상위 창에 사용하도록 설정해야 합니다. 이렇게 하면 사용하지 않도록 설정할 방법이 없습니다. 비 클라이언트 크기 조정을 사용하도록 설정하면 창의 DPI 변경에 따라 창에 대해 시스템에서 그린 모든 영역이 자동으로 확장됩니다. 여기에는 캡션 막대, 스크롤 막대 및 메뉴 모음과 같은 영역이 포함됩니다. 운영 체제가 모니터의 DPI에 따라 올바른 크기로 이러한 영역을 자동으로 렌더링하도록 하려면 EnableNonClientDpiScaling 을 호출하려고 합니다.

이 함수를 호출하면 최상위 창에 대해서만 비 클라이언트 크기 조정이 가능합니다. 자식 창은 영향을 받지 않습니다.

이 함수는 새 창을 초기화하는 동안 WM_NCCREATE 호출해야 합니다. 예제 호출은 다음과 같을 수 있습니다.

case WM_NCCREATE:
{
    EnableNonClientDpiScaling(hwnd);
    return (DefWindowProc(hwnd, message, wParam, lParam));
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 버전 1607 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2016 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll