Функция GetDpiForMonitor (shellscalingapi.h)
Запрашивает количество точек на дюйм (точек на дюйм) дисплея.
Синтаксис
HRESULT GetDpiForMonitor(
[in] HMONITOR hmonitor,
[in] MONITOR_DPI_TYPE dpiType,
[out] UINT *dpiX,
[out] UINT *dpiY
);
Параметры
[in] hmonitor
Дескриптор запрашиваемого монитора.
[in] dpiType
Тип запрашиваемого DPI. Возможные значения из перечисления MONITOR_DPI_TYPE .
[out] dpiX
Значение DPI вдоль оси X. Это значение всегда относится к горизонтальному краю, даже если экран поворачивается.
[out] dpiY
Значение DPI вдоль оси Y. Это значение всегда относится к вертикальному краю, даже если экран поворачивается.
Возвращаемое значение
Эта функция возвращает одно из следующих значений.
Код возврата | Описание |
---|---|
|
Функция успешно возвращает значения X и Y DPI для указанного монитора. |
|
Переданные дескриптор, тип DPI или указатели являются недопустимыми. |
Комментарии
Этот API не учитывает DPI и не должен использоваться, если вызывающий поток учитывает DPI для каждого монитора. Версию этого API с поддержкой DPI см. в разделе GetDpiForWindow.
При вызове Метода GetDpiForMonitor вы получите различные значения DPI в зависимости от уровня доступности вызывающего приложения. Осведомленность о DPI — это свойство уровня приложения, которое обычно определяется в манифесте приложения. Дополнительные сведения о значениях осведомленности о DPI см. в разделе PROCESS_DPI_AWARENESS. В следующей таблице показано, как будут отличаться результаты в зависимости от PROCESS_DPI_AWARENESS значения приложения.
PROCESS_DPI_UNAWARE | 96, так как приложение не знает о других коэффициентах масштабирования. |
PROCESS_SYSTEM_DPI_AWARE | Значение , заданное для системного DPI, так как приложение предполагает, что все приложения используют системный DPI. |
PROCESS_PER_MONITOR_DPI_AWARE | Фактическое значение DPI, заданное пользователем для этого дисплея. |
Значения *dpiX и *dpiY идентичны. Необходимо записать только одно из значений, чтобы определить DPI и ответить соответствующим образом.
Если MONITOR_DPI_TYPEMDT_ANGULAR_DPI или MDT_RAW_DPI, возвращаемое значение DPI не включает изменения, внесенные пользователем в DPI с помощью ползунка переопределения масштабирования рабочего стола в панель управления.
Дополнительные сведения о параметрах DPI в панель управления см. в техническом документе Написание DPI-Aware классических приложений в Предварительная версия Windows 8.1.
Требования
Минимальная версия клиента | Windows 8.1 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | shellscalingapi.h |
Библиотека | Shcore.lib |
DLL | Shcore.dll |