Verwenden der High-Level Monitor-Konfigurationsfunktionen

Aufzählen physischer Monitore

Es gibt mehrere Funktionen, die Anzeigegeräte aufzählen, einschließlich EnumDisplayMonitors und MonitorFromWindow. Diese Funktionen sind in der Windows GDI-Dokumentation unter dem Thema Multiple Display Monitorsdokumentiert. Diese Funktionen geben HMONITOR-Handles zurück. Trotz des Namens kann ein HMONITOR-Handle jedoch mehreren physischen Monitoren zugeordnet werden. Um die Einstellungen auf einem Monitor zu konfigurieren, muss die Anwendung ein eindeutiges Handle für den physischen Monitor abrufen, indem Sie GetPhysicalMonitorsFromHMONITORaufrufen.

Wenn Ihre Anwendung Direct3D verwendet, können Sie ein Monitorhandle von einem Direct3D-Gerät abrufen, indem Sie GetPhysicalMonitorsFromIDirect3DDevice9aufrufen.

Unterstützte Funktionen

Ein Monitor unterstützt möglicherweise nicht alle Monitorkonfigurationsfunktionen. Um herauszufinden, welche Funktionen ein Monitor unterstützt, rufen Sie GetMonitorCapabilities auf.

Continuous Monitor-Einstellungen

Eine Kontinuierliche Überwachungseinstellung kann zwischen einem minimalen und einem maximalen Wert liegen. Die meisten der übergeordneten Monitorkonfigurationsfunktionen steuern einstellungen für fortlaufende Monitore. Helligkeit und Kontrast sind beispielsweise kontinuierliche Einstellungen.

Kontinuierliche Überwachungseinstellungen verfügen nicht über definierte reale Einheiten. Die Einheiten sind willkürlich und können von Hersteller zu Hersteller variieren. Wenn zwei Monitore z. B. den gleichen Helligkeitswert aufweisen, sieht ein Monitor möglicherweise viel besser aus als ein anderer. In der Regel stellt eine Anwendung dem Benutzer Schieberegler- oder Nach-unten-Steuerelemente bereit. Der Benutzer kann dann die Einstellungen anpassen, um die beste subjektive Qualität zu bieten.

Änderungen im Überwachungsstatus

Ein Monitor kann Zustände aus verschiedenen Gründen ändern, z. B.:

  • Der Benutzer ändert die Einstellungen mit den Frontpanel-Steuerelementen des Monitors.
  • Der Benutzer ändert die Bildschirmauflösung, Aktualisierungsrate oder Bittiefe des Monitors.
  • Die Anwendung verwendet die Monitorfunktionen auf niedriger Ebene, um eine Einstellung zu ändern, auf die von den funktionen auf hoher Ebene nicht zugegriffen werden kann.
  • Die Anwendung ruft RestoreMonitorFactoryColorDefaults oder RestoreMonitorFactoryDefaults auf.

Alle diese Ereignisse können die Überwachungseinstellungen ändern. Sie können auch den Minimal- und Höchstwert einer Einstellung ändern.

Abhängigkeiten zwischen Monitor-Einstellungen

Das Ändern der Farbtemperatur kann das aktuelle Laufwerk ändern und einstellungen gewinnen, und das Gegenteil ist ebenfalls der Fall. Dies sind die einzigen Abhängigkeiten zwischen den übergeordneten Monitorkonfigurationsfunktionen. Auf andere Einstellungen kann nur über die Monitorfunktionen auf niedriger Ebene zugegriffen werden. Möglicherweise bestehen Abhängigkeiten zwischen diesen Einstellungen und den einstellungen auf hoher Ebene. Diese Abhängigkeiten sind herstellerspezifisch. Eine Anwendung kann dieses Problem auf verschiedene Weise behandeln:

  • Verwenden Sie nur funktionen auf hoher Ebene.
  • Rufen Sie nach dem Aufrufen einer Funktion auf niedriger Ebene den aktuellen Wert jeder Überwachungseinstellung ab. Leider kann dieser Ansatz langsam sein, da das Abrufen jeder Einstellung etwa 40 Millisekunden dauert.
  • Verwenden Sie Funktionen auf niedriger Ebene nur mit bestimmten Überwachungsmodellen, deren Verhalten Sie verstehen.

Deaktivierte monitor-Einstellungen

Eine Anwendung kann keine Monitoreinstellungen deaktivieren, indem sie die übergeordneten Monitorfunktionen aufruft. Eine Anwendung kann jedoch versehentlich eine Einstellung deaktivieren, wenn sie die Funktionen auf niedriger Ebene verwendet, um eine Überwachungseinstellung zu ändern, die von den funktionen auf hoher Ebene nicht unterstützt wird. Darüber hinaus kann ein Benutzer eine Einstellung mithilfe des Front-Panel-Steuerelements deaktivieren. Diese Verhaltensweisen sind herstellerspezifisch.

Wenn eine Überwachungseinstellung deaktiviert wird, schlägt jede Funktion, die diese Einstellung festlegt oder abruft, fehl und legt den Code für den letzten Fehler auf ERROR _ DISABLED _ MONITOR SETTING _ fest. In diesem Fall kann die Anwendung eine der folgenden Schritte ausführen:

  • Zeigen Sie eine Fehlermeldung an, und schlagen Sie dem Benutzer vor, die Einstellung mithilfe des Frontpanel-Steuerelements anzupassen.
  • Rufen Sie die RestoreMonitorFactoryDefaults-Funktion auf. Wenn ein Monitor über das _ Funktionsflag MC RESTORE _ FACTORY _ DEFAULTS ENABLES MONITOR SETTINGS _ _ _ verfügt, aktiviert diese Funktion alle Monitoreinstellungen, die von den übergeordneten Monitorfunktionen unterstützt werden. Leider setzt die Funktion auch die Monitoreinstellungen auf die Werkseinstellungen zurück.

Verwenden der Monitorkonfiguration