다음을 통해 공유


데스크톱 이미지 크기 조정

이 항목은 Windows 7 이상 및 Windows Server 2008 R2 이상 버전의 Windows 운영 체제에만 적용됩니다.

스케일링이 작동하는 방식

호출자는 SetDisplayConfig 연결 및 CCD(디스플레이 구성) 함수를 사용하여 데스크톱 이미지를 모니터로 확장할 수 있습니다.

  • 데스크톱 및 모니터에서 동일한 해상도를 사용하는 경우 SetDisplayConfig 는 데스크톱 이미지를 모니터로 확장할 필요가 없습니다. 이 SetDisplayConfig 작업을 ID 크기 조정이라고 합니다.

  • 데스크톱 및 모니터 해상도가 다른 경우 SetDisplayConfig 는 다음 크기 조정 유형 중 하나를 적용합니다. 모니터 해상도는 DISPLAYCONFIG_TARGET_MODE 구조에 의해 정의됩니다.

    • 중심 맞춤 크기 조정

      가운데 맞춤 크기 조정은 크기 조정 없이 데스크톱이 모니터에 표시되는 모드입니다. SetDisplayConfig가 가운데 크기 조정을 적용하면 검은색 밴드가 바탕 화면 위와 아래에 표시될 수 있습니다. 다음 그림은 중심으로 크기 조정한 것을 보여줍니다.

      바탕 화면 위와 아래에 검은색 밴드가 있는 가운데 크기 조정을 보여 주는 다이어그램

    • 확장된 크기 조정

      확장된 크기 조정은 전체 디스플레이가 사용되는지 확인하기 위해 데스크톱이 모니터에서 가로 및 세로로 확장되는 모드입니다. SetDisplayConfig가 확장된 크기 조정을 적용하면 바탕 화면 위와 아래에 검은색 밴드가 표시되지 않습니다. 그러나 바탕 화면이 왜곡된 것처럼 보일 수 있습니다. 다음 그림에서는 확대된 스케일링을 보여줍니다.

      데스크톱이 전체 디스플레이를 채우도록 확장된 크기 조정을 보여주는 다이어그램

    • 측면-Ratio-Preserving 늘어났습니다.

      가로 세로 비율 유지 확장 확장은 가로 세로 비율을 유지하면서 데스크톱을 가로 및 세로로 최대한 확장하는 모드입니다. SetDisplayConfig에서 화면 비율을 유지하는 확장형 스케일링이 적용될 때 바탕 화면의 검은색 밴드가 위 아래 또는 왼쪽 및 오른쪽에 표시될 수 있습니다. 그러나 검은색 밴드는 바탕 화면 의 위와 아래와왼쪽 및 오른쪽 모두에서 볼 수 없습니다. 사용자는 이러한 유형의 크기 조정을 선호하므로 SetDisplayConfig 는 이 유형의 크기 조정을 기본값으로 적용합니다. 다음 그림에서는 가로 세로 비율을 유지한 확장 크기를 보여줍니다.

      바탕 화면의 양쪽 또는 위와 아래에 검은색 밴드가 있는 가로 세로 비율 유지 확장 스케일링을 보여 주는 다이어그램

크기 조정은 경로에 사용되는 원본 및 대상 모드에 따라 달라집니다. 또한 호출자는 대상 모드 정보를 지정하지 않고 SetDisplayConfig 를 호출할 수 있습니다(즉, modeInfoArray 매개 변수 설정은 선택 사항이며 NULL로 설정할 수 있음). 즉, 호출자는 일반적으로 SetDisplayConfig 에서 크기 조정을 수행해야 하는지 예측할 수 없습니다. 또한 그래픽 어댑터가 지원하는 크기 조정 형식의 전체 목록을 가져오는 API가 없습니다. EnumDisplaySettings Win32 함수는 호출자가 Windows 7 크기 조정 형식을 요청할 때 lpDevMode 매개 변수가 가리키는 DEVMODE 구조체의 dmDisplayFixedOutput 멤버에서 DMDFO_DEFAULT 반환합니다.

호출자가 SetDisplayConfig 에 전달하는 크기 조정은 크기 조정 작업을 수행하기 위한 명시적 요청이 아닌 크기 조정 의도입니다. 크기 조정이 필요한 경우(예: 원본 및 대상 해상도가 다른 경우) SetDisplayConfig 는 호출자가 제공하는 크기 조정을 사용합니다. 제공된 크기 조정이 지원되지 않는 경우 SetDisplayConfig 는 그래픽 어댑터의 기본 크기 조정을 사용합니다. 호출자가 SetDisplayConfig에 전달하는 원본 및 대상 해상도가 동일한 경우, SetDisplayConfig는 항상 동일 크기 조정을 설정합니다.

요청 크기 조정

다음 표에서는 다양한 SetDisplayConfig 크기 조정 요청을 보여 줍니다. 아래 하위 섹션에 있는 테이블에서 사용되는 약식 명명법을 식별합니다. DISPLAYCONFIG_SCALING_XXX 값의 정의는 DISPLAYCONFIG_SCALING 참조하세요.

요청 크기 조정 아래 표에서 사용되는 축약된 명명법
DISPLAYCONFIG_SCALING_IDENTITY DC_IDENTITY
디스플레이 설정 - 중앙 스케일링 DC_CENTERED
디스플레이 설정 크기 맞춤 스트레치 DC_STRETCHED
디스플레이 설정: 비율 중심 최대 확대 DC_ASPECTRATIOCENTEREDMAX
DISPLAYCONFIG_SCALING_CUSTOM DC_CUSTOM
화면구성_확대_선호됨 DC_PREFERRED
어댑터 기본 크기 조정 값입니다. 현재 태블릿 시스템에서는 기본값이 늘어나고 있습니다. WDDM( Windows 디스플레이 드라이버 모델 )을 지원하는 그래픽 어댑터가 있는 태블릿이 아닌 시스템에서는 드라이버에서 기본값을 정의합니다. Windows 7용 새로운 기능이 있는 WDDM을 지원하는 그래픽 어댑터가 탑재된 비태블릿 시스템에서는 기본값이 DC_ASPECTRATIOCENTEREDMAX입니다. AdapterDefault
현재 연결된 모니터에 대한 데이터베이스의 크기 조정 값 DatabaseValue

SetDisplayConfig 크기 조정 요청

다음 표에서는 데이터베이스에 저장된 값과 실제로 설정된 값을 보여 하며 여기서는 다음과 같습니다.

  • 결과 소스 모드와 대상 모드의 해상도가 같을 때 "설정(동일)" 및 "저장(동일)"은 설정 및 저장 값입니다.
  • 결과 소스 모드와 대상 모드의 해상도가 다를 경우 "Set(different)" 및 "Store(다른)"는 집합 및 저장 값입니다.
SetDisplayConfig에 전달된 크기 조정 플래그 설정(동일) 스토어(동일) 설정(다른) 설정(다른)
현재 구성 DC_IDENTITY가 데이터베이스에 없습니다. DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
현재 Db의 구성 DC_IDENTITY DC_IDENTITY 데이터베이스 값 데이터베이스 값 데이터베이스값
DC_가운데정렬 DC_IDENTITY DC_CENTERED 중앙 정렬 DC_CENTERED
DC_STRETCHED DC_IDENTITY DC_STRETCHED DC_스트레치드 DC_STRETCHED
WDDM에서 Windows 7 기능이 있는 드라이버를 사용하여 DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY DC_ASPRATIOMAX DC_ASPRATIOMAX DC_ASPRATIOMAX
WDDM 드라이버의 DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY 어댑터기본 AdapterDefault 어댑터기본영역
Windows 7 기능 드라이버가 경로에서 사용자 지정 크기 조정을 지원하는 WDDM의 DC_CUSTOM과 함께 작동합니다. DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM
WDDM의 DC_CUSTOM에서 경로 내 사용자 지정 크기 조정을 지원하지 않는 Windows 7 기능 드라이버 DC_IDENTITY 어댑터 기본값 AdapterDefault AdapterDefault
WDDM 드라이버에서 DC_CUSTOM DC_IDENTITY AdapterDefault 어댑터 기본값 AdapterDefault
해당 구성 "DC_PREFERRED"이(가) 데이터베이스에 없습니다. DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault (기본 어댑터)
Db의 현재 설정 DC_PREFERRED DC_IDENTITY 데이터베이스 값 데이터베이스값 데이터베이스값

레거시 ChangeDisplaySettingsEx 크기 조정 요청

다음 표에서는 호출자가 레거시 ChangeDisplaySettingsEx API에 전달할 수 있는 크기 조정이 크기 조정 집합에 매핑되는 방법을 보여 줍니다.

  • 결과 소스 모드와 대상 모드의 해상도가 같을 때 "설정(동일)" 및 "저장(동일)"은 설정 및 저장 값입니다.
  • 결과 소스 모드와 대상 모드의 해상도가 다를 경우 "Set(다른)" 및 "Store(다른)"는 설정 및 저장 값입니다.
ChangeDisplaySettingsEx에 전달된 크기 조정 플래그 설정(동일) 스토어(동일) 설정(다른) 설정(다른)
현재 구성이 CCD 데이터베이스에 없는 DMDFO_DEFAULT DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
CCD 데이터베이스의 현재 구성을 사용하여 DMDFO_DEFAULT DC_IDENTITY 데이터베이스 값 DatabaseValue DatabaseValue
DMDFO_STRETCH DC_IDENTITY DC_STRETCHED DC_STRETCHED DC_STRETCHED
DMDFO_CENTER DC_IDENTITY DC_CENTERED DC_CENTERED (중심 정렬) DC_CENTERED
DM_DISPLAYFIXEDOUTPUT가 설정되지 않았으며, 현재 구성은 CCD 데이터베이스에 없습니다. DC_IDENTITY AdapterDefault 어댑터 기본값 어댑터기본값
DM_DISPLAYFIXEDOUTPUT 설정되지 않음, CCD 데이터베이스의 현재 구성 DC_IDENTITY 데이터베이스 값 데이터베이스 값 데이터베이스값

구식 EnumDisplaySettings 크기 조정 번역

다음 표에서는 EnumDisplaySettings에서 디스플레이 구성 크기 조정을 변환하고 반환하는 방법을 보여 줍니다.

현재 활성화된 스케일링 레거시 EnumDisplaySettings(ENUM_CURRENT_SETTINGS)에서 반환된 GDI 크기 조정 값
DC_IDENTITY DMDFO_DEFAULT
DC_중앙 정렬 DMDFO_CENTER
DC_스트레치드 DMDFO_STRETCH
DC_ASPRATIOMAX DMDFO_DEFAULT
DC_사용자 지정 DMDFO_DEFAULT
DC_PREFERRED DMDFO_DEFAULT

DirectX 게임 및 크기 조정

Microsoft DirectX 9L 및 이전 런타임을 사용하려면 애플리케이션에서 lpDevMode 매개 변수가 가리키는 DEVMODE 구조체의 dmFields 멤버에 DM_DISPLAYFIXEDOUTPUT 설정하지 않고 항상 ChangeDisplaySettingsEx 함수를 호출해야 합니다. DirectX 10 이상 런타임을 사용하면 애플리케이션에서 해당 애플리케이션이 ChangeDisplaySettingsEx에 전달하는 크기 조정을 선택할 수 있습니다. 다음 표에서는 ChangeDisplaySettingsEx에 전달되는 크기 조정 플래그에 대한 크기 조정 값 매핑을 보여 줍니다.

DXGI 플립 체인 크기 조정 값 ChangeDisplaySettingsEx에 전달되는 크기 조정 플래그
DXGI_MODE_SCALING_UNSPECIFIED DMDFO_DEFAULT, DMDFO_CENTER 또는 DMDFO_STRETCH. 애플리케이션에서 사용하는 크기 조정은 드라이버가 노출하는 현재 데스크톱 크기 조정 및 모드 목록을 포함하는 몇 가지 요인에 따라 달라집니다.
DXGI_MODE_SCALING_CENTERED (디지털 이미지 및 그래픽 인터페이스 모드 중앙 배율) DMDFO_CENTER
DXGI_MODE_SCALING_STRETCHED DMDFO_STRETCH

이 정보를 이전 크기 조정 테이블과 함께 사용하면 DirectX 애플리케이션에서 예상되는 크기 조정을 확인할 수 있습니다.