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


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

Задает для текущего процесса заданные точки на дюйм (точек на дюйм) контекста осведомленности. Контексты осведомленности о DPI относятся к значению DPI_AWARENESS_CONTEXT .

Примечание

Рекомендуется задавать уровень осведомленности о DPI по умолчанию процесса с помощью манифеста приложения, а не вызова API. Дополнительные сведения см. в разделе Настройка сведений о DPI по умолчанию для процесса . Настройка определения DPI по умолчанию процесса с помощью вызова API может привести к непредвиденному поведению приложения.

Синтаксис

BOOL SetProcessDpiAwarenessContext(
  [in] DPI_AWARENESS_CONTEXT value
);

Параметры

[in] value

Заданный дескриптор DPI_AWARENESS_CONTEXT .

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

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

Возможные ошибки ERROR_INVALID_PARAMETER для недопустимых входных данных и ERROR_ACCESS_DENIED , если для процесса уже задан режим осведомленности API по умолчанию (с помощью предыдущего вызова API или в манифесте приложения).

Комментарии

Этот API является более сложной версией ранее существующего API SetProcessDpiAwareness , что позволяет задать для процесса по умолчанию более детализированные значения DPI_AWARENESS_CONTEXT . Самое главное, это позволяет программно задать значение по умолчанию для каждого монитора версии 2 , что невозможно в предыдущем API.

Этот метод задает DPI_AWARENESS_CONTEXT по умолчанию для всех потоков в приложении. Сведения о DPI отдельных потоках могут быть изменены по сравнению со значением по умолчанию с помощью метода SetThreadDpiAwarenessContext .

Этот API необходимо вызвать перед вызовом любых API, которые зависят от осведомленности о DPI (в том числе перед созданием пользовательского интерфейса в процессе). После настройки осведомленности об API для приложения все последующие вызовы этого API будут завершатся ошибкой. Это верно независимо от того, задали ли вы осведомленность о DPI в манифесте или с помощью этого API.

Если уровень осведомленности о DPI не задан, значение по умолчанию — DPI_AWARENESS_CONTEXT_UNAWARE.

Требования

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

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

DPI_AWARENESS_CONTEXT

SetThreadDpiAwarenessContext

Настройка осведомленности о DPI по умолчанию для процесса