Функция 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 |