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

Диалоговые окна в контекстах per-Monitor версии 2 масштабируются автоматически. Этот метод позволяет настроить поведение изменения DPI.

Эта функция работает в сочетании с перечислением DIALOG_DPI_CHANGE_BEHAVIORS , чтобы переопределить поведение масштабирования DPI по умолчанию для диалогов. Эта функция вызывается в указанном диалоговом окне, для которого указанные флаги сохраняются по отдельности.

Эта функция не влияет на поведение масштабирования DPI для дочерних окон диалогового окна, о чем идет речь. Это можно сделать с помощью SetDialogControlDpiChangeBehavior.

Синтаксис

BOOL SetDialogDpiChangeBehavior(
  HWND                        hDlg,
  DIALOG_DPI_CHANGE_BEHAVIORS mask,
  DIALOG_DPI_CHANGE_BEHAVIORS values
);

Параметры

hDlg

Дескриптор для диалога, поведение которого будет изменено.

mask

Маска, указывающая подмножество флагов, которые необходимо изменить.

values

Требуемое значение, которое должно быть задано для указанного подмножества флагов.

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

Эта функция возвращает значение TRUE, если операция была успешной, и false в противном случае. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Возможные ошибки ERROR_INVALID_HANDLE , если передан недопустимый HWND диалога, и ERROR_ACCESS_DENIED , принадлежит ли диалог другому процессу.

Комментарии

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

Вызов этого API вне контекстов per Monitor версии 2 не является ошибкой, хотя флаги не будут влиять на поведение указанного диалогового окна, пока контекст не изменится на Per Monitor версии 2.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1703 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header winuser.h
Библиотека User32.lib
DLL User32.dll

См. также раздел

DIALOG_DPI_CHANGE_BEHAVIORS

GetDialogDpiChangeBehavior