共用方式為


調整桌面映像

本主題僅適用於 Windows 7 和更新版本,以及 Windows Server 2008 R2 和更新版本的 Windows 操作系統。

縮放的運作方式

呼叫端可以使用 SetDisplayConfig 連線和設定顯示 (CCD) 函式,將桌面映像調整為監視器:

  • 如果桌面和監視器使用相同的解析度, 則不需要 SetDisplayConfig 將桌面映像調整為監視器。 此 SetDisplayConfig 作業稱為 身分識別調整

  • 如果桌面和監視器解析度不同, SetDisplayConfig 會套用下列其中一種調整類型。 監視解析是由 DISPLAYCONFIG_TARGET_MODE 結構所定義。

    • 置中調整

      置中縮放是桌面在監視器上顯示的模式,完全不需要調整。 當 SetDisplayConfig 套用置中縮放比例時,黑色帶可能會顯示在桌面上方和下方。 下圖顯示置中調整。

      此圖顯示桌面上方和下方有黑色帶的置中縮放比例。

    • 延展式調整

      延展式縮放是桌面在監視器上水準和垂直延展的模式,以確保使用整個顯示器。 當 SetDisplayConfig 套用延展式縮放時,桌面上方和下方不會顯示黑色帶。 不過,桌面可能會扭曲。 下圖顯示延展式縮放。

      顯示使用桌面填滿整個顯示器的延展縮放比例圖表。

    • 外觀比例保留延展

      外觀比例保留延展縮放是一種模式,其中桌面會以水準和垂直方式縮放,同時維持外觀比例。 當 SetDisplayConfig 套用外觀比例保留延展式縮放時,黑色帶可能會顯示在桌面的上方和下方左或右方。 不過,桌面上方和下方和方都看不到黑色帶。 因為用戶預期偏好這種類型的調整, 所以 SetDisplayConfig 會將這種類型的調整套用為預設值。 下圖顯示外觀比例保留延展式縮放比例。

      此圖顯示外觀比例保留延展式縮放比例,並顯示桌面上方或上方或下方有黑色帶的延展縮放比例。

縮放取決於路徑所使用的來源和目標模式。 此外,呼叫端可以呼叫 SetDisplayConfig 而不指定目標模式資訊 (,也就是設定 modeInfoArray 參數是選擇性的,而且可以設定為 NULL) 。 這表示呼叫端通常無法預測 SetDisplayConfig 是否必須執行任何調整。 此外,沒有 API 可取得圖形配接器所支援之縮放類型的完整清單。 EnumDisplaySettings Win32 函式會在 DEVMODE 結構的 dmDisplayFixedOutput 成員中傳回DMDFO_DEFAULT,當呼叫端要求 Windows 7 縮放類型時,lpDevMode 參數會指向該成員。

呼叫端傳遞至 SetDisplayConfig 的調整是調整意圖,而不是執行調整作業的明確要求。 例如,如果需要調整 (,來源和目標解析度會) 不同, 則 SetDisplayConfig 會使用呼叫端所提供的縮放比例。 如果不支援提供的縮放比例, SetDisplayConfig 會使用圖形配接器的默認縮放比例。 當呼叫端傳遞至 SetDisplayConfig 的來源和目標解析相同時, SetDisplayConfig 一律會設定身分識別調整。

調整要求

下表顯示不同的 SetDisplayConfig 調整要求,並識別下列子區段中數據表中使用的縮寫名詞。 如需DISPLAYCONFIG_SCALING_XXX值的定義,請參閱DISPLAYCONFIG_SCALING

調整要求 下表中使用的縮寫名詞
DISPLAYCONFIG_SCALING_IDENTITY DC_IDENTITY
DISPLAYCONFIG_SCALING_CENTERED DC_CENTERED
DISPLAYCONFIG_SCALING_STRETCHED DC_STRETCHED
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX DC_ASPECTRATIOCENTEREDMAX
DISPLAYCONFIG_SCALING_CUSTOM DC_CUSTOM
DISPLAYCONFIG_SCALING_PREFERRED DC_PREFERRED
配接器預設縮放值。 目前,在平板電腦上,預設值會延展。 在支援 Windows 顯示器驅動程式模型 (WDDM) 之圖形適配卡的非平板電腦上,驅動程式會定義預設值。 在支援 WDDM 且具有 Windows 7 新功能之圖形適配卡的非平板電腦上,預設值為 DC_ASPECTRATIOCENTEREDMAX。 AdapterDefault
目前線上監視器之資料庫的縮放值 DatabaseValue

SetDisplayConfig 調整要求

下表顯示儲存在資料庫中的值,以及實際設定的值,其中:

  • 當結果來源模式和目標模式具有相同解析度時,「設定 (相同) 」和「儲存 (相同) 」是設定和儲存值
  • 當結果來源模式和目標模式有不同的解析度時,「設定 (不同的) 」和「儲存 (不同的) 」是設定和儲存值
傳遞至 SetDisplayConfig 的縮放旗標 設定相同的 () 儲存 (相同的) 設定不同的 () 設定不同的 ()
DC_IDENTITY目前未在 Db 中設定 DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
在 Db 中DC_IDENTITY目前的設定 DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue
DC_CENTERED DC_IDENTITY DC_CENTERED DC_CENTERED DC_CENTERED
DC_STRETCHED DC_IDENTITY DC_STRETCHED DC_STRETCHED DC_STRETCHED
使用 Windows 7 功能驅動程式在 WDDM 上DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY DC_ASPRATIOMAX DC_ASPRATIOMAX DC_ASPRATIOMAX
WDDM 驅動程式上的DC_ASPECTRATIOCENTEREDMAX DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
在 WDDM 上使用 Windows 7 功能驅動程式DC_CUSTOM,其支持路徑上的自定義調整 DC_CUSTOM DC_CUSTOM DC_CUSTOM DC_CUSTOM
DC_CUSTOM WDDM 上的 Windows 7 功能驅動程式不支援路徑上的自定義調整 DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
WDDM 驅動程式上的DC_CUSTOM DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
DC_PREFERRED目前設定不在 Db 中 DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
在 Db 中DC_PREFERRED目前的設定 DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

舊版 ChangeDisplaySettingsEx 調整要求

下表顯示呼叫端如何傳遞至舊版 ChangeDisplaySettingsEx API 的縮放比例對應至縮放集,其中:

  • 當結果來源模式和目標模式具有相同解析度時,「設定 (相同的) 」和「儲存 (相同) 」是設定和儲存值
  • 當產生的來源模式和目標模式有不同的解析度時,「設定 (不同的) 」和「存放區 (不同的) 」是設定和儲存值
傳遞至 ChangeDisplaySettingsEx 的縮放旗標 設定相同的 () 儲存 (相同的) 設定不同的 () 設定不同的 ()
DMDFO_DEFAULT目前設定不在CCD資料庫中 DC_IDENTITY AdapterDefault AdapterDefault AdapterDefault
在 CCD 資料庫中具有目前設定的DMDFO_DEFAULT DC_IDENTITY DatabaseValue 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 AdapterDefault AdapterDefault
DM_DISPLAYFIXEDOUTPUT未設定,CCD 資料庫中目前的設定 DC_IDENTITY DatabaseValue DatabaseValue DatabaseValue

舊版 EnumDisplaySettings 調整翻譯

下表顯示如何轉譯和傳回 EnumDisplaySettings 的顯示組態調整。

目前作用中的縮放比例 從舊版 EnumDisplaySettings 傳回的 GDI 縮放值 (ENUM_CURRENT_SETTINGS)
DC_IDENTITY DMDFO_DEFAULT
DC_CENTERED DMDFO_CENTER
DC_STRETCHED DMDFO_STRETCH
DC_ASPRATIOMAX DMDFO_DEFAULT
DC_CUSTOM DMDFO_DEFAULT
DC_PREFERRED DMDFO_DEFAULT

DirectX 遊戲和調整

Microsoft DirectX 9L 和舊版運行時間要求應用程式一律呼叫 ChangeDisplaySettingsEx 函式,而不需在 lpDevMode 參數指向之 DEVMODE 結構的 dmFields 成員中設定DM_DISPLAYFIXEDOUTPUT。 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 應用程式判斷預期的調整。