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


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

Задает DPI_HOSTING_BEHAVIOR потока. Это позволяет окнам, созданным в потоке, размещать дочерние окна с другой DPI_AWARENESS_CONTEXT.

Синтаксис

DPI_HOSTING_BEHAVIOR SetThreadDpiHostingBehavior(
  DPI_HOSTING_BEHAVIOR value
);

Параметры

value

Новое значение DPI_HOSTING_BEHAVIOR для текущего потока.

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

Предыдущий DPI_HOSTING_BEHAVIOR для потока. Если переданное поведение размещения недопустимо, поток не будет обновлен, а возвращаемое значение будет DPI_HOSTING_BEHAVIOR_INVALID. Это значение можно использовать для восстановления старого DPI_HOSTING_BEHAVIOR после переопределения его предопределенным значением.

Комментарии

DPI_HOSTING_BEHAVIOR обеспечивает смешанное размещение содержимого, что позволяет родительским окнам, созданным в потоке, размещать дочерние окна с другим значением DPI_AWARENESS_CONTEXT . Это свойство влияет только на новые окна, созданные в этом потоке, пока активен смешанный режим размещения. Родительское окно с таким поведением размещения может размещать дочерние окна с разными значениями DPI_AWARENESS_CONTEXT независимо от того, включено ли в дочерних окнах смешанное поведение размещения.

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

Чтобы избежать непредвиденных результатов, DPI_HOSTING_BEHAVIOR потока следует изменить для поддержки смешанного поведения размещения только при создании нового окна, которое должно поддерживать эти поведения. После создания этого окна поведение размещения должно быть возвращено на его значение по умолчанию.

Этот API используется для изменения DPI_HOSTING_BEHAVIOR потока со значения по умолчанию. Это необходимо, только если вашему приложению требуется разместить дочерние окна из подключаемых модулей и сторонних компонентов, которые не поддерживают контекст с учетом монитора. Это, скорее всего, произойдет, если вы обновляете сложные приложения для поддержки DPI_AWARENESS_CONTEXT поведения для каждого монитора.

Включение смешанного размещения не приведет к автоматической настройке DPI_AWARENESS_CONTEXT потока для обеспечения совместимости с устаревшим содержимым. Контекст осведомленности потока по-прежнему должен быть изменен вручную, прежде чем будут созданы новые окна для размещения такого содержимого.

Требования

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

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

DPI_HOSTING_BEHAVIOR

GetThreadDpiHostingBehavior

GetWindowDpiHostingBehavior