Функция ChangeDisplaySettingsA (winuser.h)
Функция ChangeDisplaySettings изменяет параметры устройства отображения по умолчанию на указанный графический режим.
Чтобы изменить параметры указанного устройства отображения, используйте функцию ChangeDisplaySettingsEx .
Синтаксис
LONG ChangeDisplaySettingsA(
[in] DEVMODEA *lpDevMode,
[in] DWORD dwFlags
);
Параметры
[in] lpDevMode
Указатель на структуру DEVMODE , описывающую новый режим графики. Если lpDevMode имеет значение NULL, для параметра отображения будут использоваться все текущие значения в реестре. Передача null для параметра lpDevMode и 0 для параметра dwFlags — это самый простой способ вернуться в режим по умолчанию после изменения динамического режима.
Член dmSizedevMODE должен быть инициализирован размером в байтах структуры 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 | Используйте значение dmDisplayFrequency . |
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 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winuser.h (включая Windows.h) |
Библиотека | User32.lib |
DLL | User32.dll |
Набор API | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (представлено в Windows 10 версии 10.0.14393) |
См. также раздел
Создание центра обработки данных