Функция ChangeDisplaySettingsA (winuser.h)
Функция ChangeDisplaySettings изменяет параметры устройства отображения по умолчанию на указанный графический режим.
Чтобы изменить параметры указанного устройства отображения, используйте функцию ChangeDisplaySettingsEx.
Синтаксис
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
Параметры
[in] lpDevMode
Указатель на структуру DEVMODE, описывающую новый графический режим. Если lpDevModeNULL, все значения в реестре будут использоваться для параметра отображения. Передача NULL для параметра lpDevMod e и 0 для параметра dwFlags dwFlags — самый простой способ вернуться в режим по умолчанию после динамического изменения режима.
dmSize член DEVMODE должен быть инициализирован в размер в байтах структуры DEVMODE. Элемент dmDriverExtraDEVMODE должен быть инициализирован, чтобы указать количество байт данных частного драйвера после структуры DEVMODE. Кроме того, можно использовать любые или все перечисленные ниже элементы структуры DEVMODE.
Член | Значение |
---|---|
dmBitsPerPel | Биты на пиксель |
dmPelsWidth | Ширина пикселя |
dmPelsHeight | Высота пикселя |
dmDisplayFlags | Флаги режима |
dmDisplayFrequency | Частота режима |
dmPosition | Положение устройства в конфигурации с несколькими мониторами. |
Помимо использования одного или нескольких предыдущих элементов DEVMODE, необходимо также задать одно или несколько следующих значений в элементе dmFields, чтобы изменить параметр отображения.
Ценность | Значение |
---|---|
DM_BITSPERPEL | Используйте значение dmBitsPerPel. |
DM_PELSWIDTH | Используйте значение dmPelsWidth. |
DM_PELSHEIGHT | Используйте значение dmPelsHeight. |
DM_DISPLAYFLAGS | Используйте dmDisplayFlags значение. |
DM_DISPLAYFREQUENCY | Используйте значение |
DM_POSITION | Используйте значение dmPosition. |
[in] dwFlags
Указывает, как следует изменить графический режим. Этот параметр может быть одним из следующих значений.
Указание CDS_TEST позволяет приложению определить, какие графические режимы фактически допустимы, не вызывая изменения системы на этот графический режим.
Если CDS_UPDATEREGISTRY указан и можно динамически изменить графический режим, данные хранятся в реестре и возвращаются DISP_CHANGE_SUCCESSFUL. Если невозможно динамически изменить графический режим, данные хранятся в реестре и возвращаются DISP_CHANGE_RESTART.
Если указан CDS_UPDATEREGISTRY и данные не могут храниться в реестре, графический режим не изменяется и возвращается DISP_CHANGE_NOTUPDATED.
Возвращаемое значение
Функция ChangeDisplaySettings возвращает одно из следующих значений.
Возвращаемый код | Описание |
---|---|
|
Изменение параметров выполнено успешно. |
|
Изменение параметров было неудачным, так как система поддерживает DualView. |
|
Недопустимый набор флагов был передан. |
|
Графический режим не поддерживается. |
|
Недопустимый параметр был передан. Это может включать недопустимый флаг или сочетание флагов. |
|
Драйвер отображения завершился ошибкой указанного графического режима. |
|
Не удается записать параметры в реестр. |
|
Для работы графического режима необходимо перезапустить компьютер. |
Замечания
Чтобы структура DEVMODE, переданная ChangeDisplaySettings, действительна и содержит только значения, поддерживаемые драйвером отображения, используйте DEVMODE, возвращенные функцией EnumDisplaySettings.
При динамическом изменении режима отображения сообщение WM_DISPLAYCHANGE отправляется всем запущенным приложениям со следующими параметрами сообщения.
Параметры | Значение |
---|---|
wParam | Новые биты на пиксель |
LOWORD(lParam) | Новая ширина пикселя |
HIWORD(lParam) | Новая высота пикселя |
виртуализация DPI
Этот API не участвует в виртуализации DPI. Входные данные всегда относятся к физическим пикселям и не связаны с вызывающим контекстом.Заметка
Заголовок winuser.h определяет ChangeDisplaySettings как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winuser.h (включая Windows.h) |
библиотеки |
User32.lib |
DLL | User32.dll |
набор API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (представлено в Windows 10 версии 10.0.14393) |
См. также
функций контекста устройства
Обзор контекстов устройств