使用 High-Level 監視組態函式

列舉實體監視器

有數個函式可列舉顯示裝置,包括 EnumDisplayMonitorsMonitorFromWindow。 這些函式記載于 Windows GDI 檔中,主題為 多個顯示監視器。 這些函式會傳回 HMONITOR 控制碼。 不過,雖然名稱為 , 但 HMONITOR 控制碼可以與多個實體監視器相關聯。 若要在監視器上設定設定,應用程式必須藉由呼叫 GetPhysicalMonitorsFromHMONITOR來取得實體監視器的唯一控制碼。

如果您的應用程式使用 Direct3D,您可以呼叫 GetPhysicalMonitorsFromIDirect3DDevice9,從 Direct3D 裝置取得監視控制碼。

支援的函式

監視器可能不支援所有監視組態函式。 若要找出監視器支援的函式,請呼叫 GetMonitorCapabilities

連續監視器設定

連續監視器設定是可以介於一些最小值和最大值之間的監視設定。 大部分的高階監視器組態函式都會控制連續監視設定。 例如,亮度和對比是連續設定。

連續監視器設定沒有定義真實世界單位。 這些單位是任意的,而且可能會因一個製造商而異。 例如,如果兩個監視器的亮度值相同,一個監視器看起來可能會比另一個監視器更亮。 一般而言,應用程式會將滑杆控制項或向上控制項呈現給使用者。 然後,使用者可以調整設定,以提供最佳的主旨品質。

監視狀態的變更

監視器可能會因各種原因而變更狀態,包括:

  • 使用者會使用監視器的前端面板控制項來變更設定。
  • 使用者變更監視器的螢幕解析度、重新整理速率或位深度。
  • 應用程式會使用低階監視器函式來變更無法從高階函式存取的設定。
  • 應用程式會呼叫 RestoreMonitorFactoryColorDefaultsRestoreMonitorFactoryDefaults

所有這些事件都可以變更監視設定。 它們也可以變更設定的最小值和最大值。

監視設定之間的相依性

變更色彩溫度可能會變更目前的磁片磁碟機並取得設定,而反向也成立。 這些是高階監視器組態函式之間的唯一相依性。 其他設定可能只能透過低階監視器函式來存取。 這些設定與高階設定之間可能會有相依性。 這些相依性是廠商特定的。 應用程式可以透過數種方式來處理此問題:

  • 僅使用高階函式。
  • 呼叫低階函式之後,取得每個監視器設定的目前值。 不幸的是,這種方法可能會很慢,因為取得每個設定大約需要 40 毫秒。
  • 僅搭配您瞭解其行為的特定監視器模型使用低階函式。

停用的監視器設定

應用程式無法藉由呼叫高階監視器函式來停用任何監視設定。 不過,如果應用程式使用低階函式來變更高階函式不支援的監視設定,應用程式可能會意外停用設定。 此外,使用者也可以使用前面板控制項來停用設定。 這些行為是廠商特定的。

如果監視設定變成停用,則任何設定或擷取該設定的函式都會失敗,並將最後一個錯誤碼設定為ERROR_DISABLED_MONITOR_SETTING。 發生這種情況時,應用程式可以執行下列其中一項:

  • 顯示錯誤訊息,並建議使用者嘗試使用前面板控制項來調整設定。
  • 呼叫 RestoreMonitorFactoryDefaults 函式 。 如果監視器具有MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS功能旗標,此函式會啟用高階監視功能支援的所有監視設定。 不幸的是,函式也會將監視器設定重設為其原廠預設值。

使用監視組態