Использование функций конфигурации мониторинга High-Level
Перечисление физических мониторов
Существует несколько функций, которые перечисляют устройства отображения, включая EnumDisplayMonitors и MonitorFromWindow. Эти функции описаны в документации Windows GDI в разделе Множественные дисплейные мониторы. Эти функции возвращают дескрипторы HMONITOR. Несмотря на название, дескриптор HMONITOR может быть связан с несколькими физическими мониторами. Чтобы настроить параметры монитора, приложение должно получить уникальный дескриптор физического монитора, вызвав GetPhysicalMonitorsFromHMONITOR.
Если ваше приложение использует Direct3D, вы можете получить дескриптор монитора с устройства Direct3D, вызвав GetPhysicalMonitorsFromIDirect3DDevice9.
Поддерживаемые функции
Монитор может не поддерживать все функции конфигурации монитора. Чтобы узнать, какие функции поддерживают монитор, вызовите GetMonitorCapabilities.
Параметры непрерывного мониторинга
Параметр монитора, работающий в непрерывном режиме, может варьироваться между минимальным и максимальным значением. Большинство высокоуровневых функций конфигурации монитора управляют непрерывными настройками монитора. Например, яркость и контрастность являются непрерывными параметрами.
Параметры непрерывного мониторинга не имеют определенных единиц реального мира. Единицы произвольны и могут отличаться от одного производителя к другому. Если два монитора имеют одно и то же значение яркости, например, один монитор может выглядеть гораздо ярче, чем другой. Как правило, приложение будет предоставлять элементы управления ползунком или вверх-вниз. Затем пользователь может настроить параметры, чтобы обеспечить лучшее субъективное качество.
Изменения в состоянии монитора
Монитор может изменять состояния по различным причинам, в том числе:
- Пользователь изменяет параметры с помощью элементов управления передней панели монитора.
- Пользователь изменяет разрешение экрана монитора, частоту обновления или глубину бита.
- Приложение использует низкоуровневые функции монитора для изменения параметра, который недоступен из высокоуровневых функций.
- Приложение вызывает RestoreMonitorFactoryColorDefaults или RestoreMonitorFactoryDefaults.
Все эти события могут изменять параметры монитора. Они также могут изменить минимальное и максимальное значение параметра.
Зависимости между параметрами монитора
Изменение цветовой температуры может изменить параметры текущего управления и усиления, и наоборот. Это единственные зависимости среди высокоуровневых функций конфигурации монитора. Другие параметры могут быть доступны только через низкоуровневые функции монитора. Между этими параметрами и высокоуровневыми настройками могут быть зависимости. Эти зависимости зависят от поставщика. Приложение может обрабатывать эту проблему несколькими способами:
- Используйте только высокоуровневые функции.
- После вызова низкоуровневой функции получите текущее значение каждого параметра монитора. К сожалению, этот подход может быть медленным, так как получение каждого параметра занимает около 40 миллисекунда.
- Используйте низкоуровневые функции только с определенными моделями мониторинга, поведение которых вы понимаете.
Отключенные параметры монитора
Приложение не может отключить какие-либо параметры монитора путем вызова высокоуровневых функций монитора. Однако приложение может случайно отключить параметр, если он использует низкоуровневые функции для изменения параметра монитора, который не поддерживается высокоуровневых функций. Кроме того, пользователь может отключить параметр с помощью элемента управления передней панели. Эти поведения зависят от поставщика.
Если параметр монитора отключен, любая функция, которая задает или извлекает этот параметр, завершится ошибкой и задайте для ERROR_DISABLED_MONITOR_SETTING код последней ошибки. В этом случае приложение может выполнить одно из следующих действий:
- Отобразите сообщение об ошибке и предложите пользователю, что он или она пытается настроить параметр с помощью элемента управления передней панели.
- Вызовите функцию RestoreMonitorFactoryDefaults. Если у монитора установлен флаг возможностей MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS, эта функция включает все настройки, поддерживаемые высокоуровневыми функциями монитора. К сожалению, функция также сбрасывает параметры монитора в значение по умолчанию.
Связанные разделы