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


Функция EnumDisplaySettingsA (winuser.h)

Функция EnumDisplaySettings извлекает сведения о одном из графических режимов для устройства отображения. Чтобы получить сведения для всех графических режимов устройства отображения, выполните ряд вызовов этой функции.

Примечание Приложения, которые вы разрабатываете для Windows 8 и более поздних версий, больше не могут запрашивать или устанавливать режимы отображения, которые меньше 32 бит на пиксель (bpp); Эти операции завершаются ошибкой. Эти приложения имеют манифест совместимости , предназначенный для Windows 8. Windows 8 по-прежнему поддерживает 8-разрядные и 16-разрядные режимы цветов для классических приложений, созданных без манифеста Windows 8; Windows 8 эмулирует эти режимы, но по-прежнему работает в 32-разрядном цветовом режиме.
 

Синтаксис

BOOL EnumDisplaySettingsA(
  [in]  LPCSTR   lpszDeviceName,
  [in]  DWORD    iModeNum,
  [out] DEVMODEA *lpDevMode
);

Параметры

[in] lpszDeviceName

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

Этот параметр имеет значение NULL или DISPLAY_DEVICE.DeviceName, возвращенные из EnumDisplayDevices. Значение NULL указывает текущее устройство отображения на компьютере, на котором выполняется вызывающий поток.

[in] iModeNum

Тип извлекаемой информации. Это значение может быть индексом режима графики или одним из следующих значений.

Ценность Значение
ENUM_CURRENT_SETTINGS
Получение текущих параметров для устройства отображения.
ENUM_REGISTRY_SETTINGS
Получите параметры для устройства отображения, которое в настоящее время хранится в реестре.
 

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

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

[out] lpDevMode

Указатель на структуру DEVMODE, в которой функция хранит сведения о указанном графическом режиме. Перед вызовом EnumDisplaySettingsзадайте для члена dmSize значение и задайте элемент dmDriverExtra для указания размера в байтах дополнительного места, доступного для получения данных частного драйвера.

Функция EnumDisplaySettings задает значения для следующих пяти элементов DEVMODE:

  • dmBitsPerPel
  • dmPelsWidth
  • dmPelsHeight
  • dmDisplayFlags
  • dmDisplayFrequency

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение ненулевое.

Если функция завершается ошибкой, возвращаемое значение равно нулю.

Замечания

Функция завершается ошибкой, если iModeNum больше индекса последнего графического режима устройства отображения. Как отмечалось в описании параметра iModeNum, это поведение можно использовать для перечисления всех режимов графики устройства отображения.

виртуализация DPI

Этот API не участвует в виртуализации DPI. Выходные данные всегда относятся к физическим пикселям и не связаны с контекстом вызова.

Заметка

Заголовок winuser.h определяет EnumDisplaySettings в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)
библиотеки User32.lib
DLL User32.dll
набор API ext-ms-win-ntuser-sysparams-ext-l1-1-0 (представлено в Windows 8)

См. также

ChangeDisplaySettings

ChangeDisplaySettingsEx

CreateDC

CreateDesktop

DEVMODE

DISPLAY_DEVICE

функций контекста устройства

Обзор контекстов устройств

EnumDisplayDevices