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

Confira também

RegisterScaleChangeEvent

UnregisterScaleChangeEvent