Поделиться через


Использование функций конфигурации монитора High-Level

Перечисление физических мониторов

Существует несколько функций, которые перечисляют устройства отображения, включая EnumDisplayMonitors и MonitorFromWindow. Эти функции описаны в документации windows GDI в разделе Несколько мониторов дисплея. Эти функции возвращают дескрипторы HMONITOR . Однако, несмотря на имя, дескриптор HMONITOR может быть связан с несколькими физическими мониторами. Чтобы настроить параметры монитора, приложение должно получить уникальный дескриптор физического монитора, вызвав Метод GetPhysicalMonitorsFromHMONITOR.

Если приложение использует Direct3D, вы можете получить дескриптор монитора с устройства Direct3D, вызвав Метод GetPhysicalMonitorsFromIDirect3Device9.

Поддерживаемые функции

Монитор может поддерживать не все функции конфигурации монитора. Чтобы узнать, какие функции поддерживает монитор, вызовите Метод GetMonitorCapabilities.

Параметры непрерывного мониторинга

Параметр непрерывного монитора может варьироваться от минимального до максимального значений. Большинство высокоуровневых функций конфигурации монитора управляют параметрами непрерывного мониторинга. Например, яркость и контрастность являются непрерывными параметрами.

Параметры непрерывного мониторинга не имеют определенных реальных единиц. Единицы измерения являются произвольными и могут отличаться от одного производителя к другому. Например, если два монитора имеют одинаковое значение яркости, один монитор может выглядеть гораздо ярче, чем другой. Как правило, приложение представляет пользователю ползунок или элементы управления вверх. Затем пользователь может настроить параметры, чтобы обеспечить наилучшее субъективное качество.

Изменения в состоянии монитора

Монитор может изменять состояния по различным причинам, в том числе:

  • Пользователь изменяет параметры с помощью элементов управления передней панели монитора.
  • Пользователь изменяет разрешение экрана монитора, частоту обновления или битовую глубину.
  • Приложение использует низкоуровневые функции мониторинга для изменения параметра, недоступного для функций высокого уровня.
  • Приложение вызывает RestoreMonitorFactoryColorDefaults или RestoreMonitorFactoryDefaults.

Все эти события могут изменять параметры монитора. Они также могут изменять минимальное и максимальное значение параметра.

Зависимости среди параметров монитора

Изменение цветовой температуры может изменить текущий диск и параметры получения, и обратное также верно. Это единственные зависимости среди высокоуровневых функций конфигурации монитора. Другие параметры могут быть доступны только через низкоуровневые функции мониторинга. Между этими параметрами и параметрами высокого уровня могут существовать зависимости. Эти зависимости зависят от поставщика. Приложение может решить эту проблему несколькими способами:

  • Используйте только высокоуровневые функции.
  • После вызова функции низкого уровня получите текущее значение каждого параметра монитора. К сожалению, этот подход может быть медленным, так как получение каждого параметра занимает около 40 миллисекундах.
  • Используйте низкоуровневые функции только с определенными моделями монитора, поведение которых вы понимаете.

Отключенные параметры монитора

Приложение не может отключить параметры монитора путем вызова высокоуровневых функций мониторинга. Однако приложение может случайно отключить параметр, если оно использует низкоуровневые функции для изменения параметра монитора, который не поддерживается функциями высокого уровня. Кроме того, пользователь может отключить параметр с помощью элемента управления передней панели. Это поведение зависит от поставщика.

Если параметр монитора отключается, любая функция, которая задает или извлекает этот параметр, завершится ошибкой и присвоит коду последней ошибки значение ERROR_DISABLED_MONITOR_SETTING. В этом случае приложение может выполнить одно из следующих действий:

  • Отобразите сообщение об ошибке и предложите пользователю попробовать настроить параметр с помощью элемента управления передней панели.
  • Вызовите функцию RestoreMonitorFactoryDefaults . Если монитор имеет флаг MC_RESTORE_FACTORY_DEFAULTS_ENABLES_MONITOR_SETTINGS возможностей, эта функция включает все параметры монитора, поддерживаемые функциями монитора высокого уровня. К сожалению, функция также сбрасывает параметры монитора до заводских значений по умолчанию.

Использование конфигурации монитора