Função GetDpiForMonitor (shellscalingapi.h)

Consulta os pontos por polegada (dpi) de uma exibição.

Sintaxe

HRESULT GetDpiForMonitor(
  [in]  HMONITOR         hmonitor,
  [in]  MONITOR_DPI_TYPE dpiType,
  [out] UINT             *dpiX,
  [out] UINT             *dpiY
);

Parâmetros

[in] hmonitor

Identificador do monitor que está sendo consultado.

[in] dpiType

O tipo de DPI que está sendo consultado. Os valores possíveis são da enumeração MONITOR_DPI_TYPE .

[out] dpiX

O valor do DPI ao longo do eixo X. Esse valor sempre se refere à borda horizontal, mesmo quando a tela é girada.

[out] dpiY

O valor do DPI ao longo do eixo Y. Esse valor sempre se refere à borda vertical, mesmo quando a tela é girada.

Valor retornado

Essa função retorna um dos valores a seguir.

Código de retorno Descrição
S_OK
A função retorna com êxito os valores de DPI X e Y para o monitor especificado.
E_INVALIDARG
O identificador, o tipo de DPI ou os ponteiros passados não são válidos.

Comentários

Essa API não tem reconhecimento de DPI e não deve ser usada se o thread de chamada estiver ciente da DPI por monitor. Para obter a versão com reconhecimento de DPI dessa API, consulte GetDpiForWindow.

Ao chamar GetDpiForMonitor, você receberá valores de DPI diferentes dependendo da conscientização da DPI sobre o aplicativo de chamada. O reconhecimento de DPI é uma propriedade no nível do aplicativo geralmente definida no manifesto do aplicativo. Para obter mais informações sobre valores de reconhecimento de DPI, consulte PROCESS_DPI_AWARENESS. A tabela a seguir indica como os resultados serão diferentes com base no valor PROCESS_DPI_AWARENESS do aplicativo.

PROCESS_DPI_UNAWARE 96 porque o aplicativo não tem conhecimento de outros fatores de escala.
PROCESS_SYSTEM_DPI_AWARE Um valor definido para o DPI do sistema porque o aplicativo pressupõe que todos os aplicativos usem o DPI do sistema.
PROCESS_PER_MONITOR_DPI_AWARE O valor de DPI real definido pelo usuário para essa exibição.
 

Os valores de *dpiX e *dpiY são idênticos. Você só precisa registrar um dos valores para determinar o DPI e responder adequadamente.

Quando MONITOR_DPI_TYPE é MDT_ANGULAR_DPI ou MDT_RAW_DPI, o valor de DPI retornado não inclui nenhuma alteração feita pelo usuário no DPI usando o controle deslizante de substituição de escala da área de trabalho em Painel de Controle.

Para obter mais informações sobre as configurações de DPI no Painel de Controle, consulte o white paper Escrevendo aplicativos da área de trabalho DPI-Aware no Windows 8.1 Preview.

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

PROCESS_DPI_AWARENESS