Funzione GetDpiForMonitor (shellscalingapi.h)

Esegue una query sui punti per pollice (dpi) di uno schermo.

Sintassi

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

Parametri

[in] hmonitor

Handle del monitoraggio sottoposto a query.

[in] dpiType

Tipo di DPI su cui viene eseguito la query. I valori possibili provengono dall'enumerazione MONITOR_DPI_TYPE .

[out] dpiX

Valore del valore DPI lungo l'asse X. Questo valore fa sempre riferimento al bordo orizzontale, anche quando lo schermo viene ruotato.

[out] dpiY

Valore del valore DPI lungo l'asse Y. Questo valore fa sempre riferimento al bordo verticale, anche quando lo schermo viene ruotato.

Valore restituito

Questa funzione restituisce uno dei valori seguenti.

Codice restituito Descrizione
S_OK
La funzione restituisce correttamente i valori DPI X e Y per il monitoraggio specificato.
E_INVALIDARG
L'handle, il tipo DPI o i puntatori passati non sono validi.

Commenti

Questa API non riconosce i valori DPI e non deve essere usata se il thread chiamante è compatibile con DPI per monitor. Per la versione compatibile con DPI di questa API, vedere GetDpiForWindow.

Quando si chiama GetDpiForMonitor, si riceveranno valori DPI diversi a seconda della consapevolezza DPI dell'applicazione chiamante. La consapevolezza DPI è una proprietà a livello di applicazione in genere definita nel manifesto dell'applicazione. Per altre informazioni sui valori di consapevolezza DPI, vedere PROCESS_DPI_AWARENESS. La tabella seguente indica come i risultati differiscono in base al valore PROCESS_DPI_AWARENESS dell'applicazione.

PROCESS_DPI_UNAWARE 96 perché l'app non è a conoscenza di altri fattori di scala.
PROCESS_SYSTEM_DPI_AWARE Valore impostato sul valore DPI di sistema perché l'app presuppone che tutte le applicazioni usino la dpi di sistema.
PROCESS_PER_MONITOR_DPI_AWARE Valore DPI effettivo impostato dall'utente per tale visualizzazione.
 

I valori di *dpiX e *dpiY sono identici. È sufficiente registrare uno dei valori per determinare il VALORE DPI e rispondere in modo appropriato.

Quando MONITOR_DPI_TYPE è MDT_ANGULAR_DPI o MDT_RAW_DPI, il valore DPI restituito non include alcuna modifica apportata all'utente al valore DPI usando il controllo dispositivo di scorrimento di override del ridimensionamento del desktop in Pannello di controllo.

Per altre informazioni sulle impostazioni DPI in Pannello di controllo, vedere il white paper Scrittura di applicazioni desktop DPI-Aware in Windows 8.1 Preview.

Requisiti

   
Client minimo supportato Windows 8.1 [solo app desktop]
Server minimo supportato Windows Server 2012 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shellscalingapi.h
Libreria Shcore.lib
DLL Shcore.dll

Vedi anche

PROCESS_DPI_AWARENESS