Função GetScaleFactorForMonitor (shellscalingapi.h)
Obtém o fator de escala de um monitor específico. Essa função substitui GetScaleFactorForDevice.
Sintaxe
HRESULT GetScaleFactorForMonitor(
[in] HMONITOR hMon,
[out] DEVICE_SCALE_FACTOR *pScale
);
Parâmetros
[in] hMon
O identificador do monitor.
[out] pScale
Quando essa função retorna com êxito, esse valor aponta para um dos valores de DEVICE_SCALE_FACTOR que especificam o fator de escala do monitor especificado.
Se a chamada de função falhar, esse valor apontará para um fator de escala válido para que os aplicativos possam optar por continuar com recursos de tamanho incorreto.
Valor retornado
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
Seu código precisa lidar com a mensagem WM_WINDOWPOSCHANGED além do evento de alteração de escala registrado por meio de RegisterScaleChangeEvent, pois a janela do aplicativo pode ser movida entre monitores. Em resposta à mensagem WM_WINDOWPOSCHANGED , chame MonitorFromWindow, seguido por GetScaleFactorForMonitor para obter o fator de escala do monitor no qual a janela do aplicativo está. Em seguida, seu código pode reagir a qualquer alteração de pontos por polegada (dpi) recarregando ativos e alterando o layout.
Requisitos
Cliente mínimo com suporte | Windows 8.1 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shellscalingapi.h |
Biblioteca | Shcore.lib |
DLL | Shcore.dll |