Freigeben über


GetDpiForMonitor-Funktion (shellscalingapi.h)

Fragt die Dpi-Werte (Dots per Inch) einer Anzeige ab.

Syntax

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

Parameter

[in] hmonitor

Handle des abgefragten Monitors.

[in] dpiType

Der Typ des abgefragten DPI. Mögliche Werte stammen aus der MONITOR_DPI_TYPE-Enumeration .

[out] dpiX

Der Wert des DPI entlang der X-Achse. Dieser Wert bezieht sich immer auf den horizontalen Rand, auch wenn der Bildschirm gedreht wird.

[out] dpiY

Der Wert des DPI-Werts entlang der Y-Achse. Dieser Wert bezieht sich immer auf den vertikalen Rand, auch wenn der Bildschirm gedreht wird.

Rückgabewert

Diese Funktion gibt einen der folgenden Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Die Funktion gibt erfolgreich die X- und Y-DPI-Werte für den angegebenen Monitor zurück.
E_INVALIDARG
Das übergebene Handle, der DPI-Typ oder die Zeiger sind ungültig.

Hinweise

Diese API ist nicht DPI-fähig und sollte nicht verwendet werden, wenn der aufrufende Thread pro Monitor DPI-fähig ist. Die DPI-fähige Version dieser API finden Sie unter GetDpiForWindow.

Wenn Sie GetDpiForMonitor aufrufen, erhalten Sie je nach DPI-Erkennung der aufrufenden Anwendung unterschiedliche DPI-Werte. DPI-Erkennung ist eine Eigenschaft auf Anwendungsebene, die normalerweise im Anwendungsmanifest definiert ist. Weitere Informationen zu DPI-Erkennungswerten finden Sie unter PROCESS_DPI_AWARENESS. In der folgenden Tabelle wird angegeben, wie sich die Ergebnisse je nach PROCESS_DPI_AWARENESS Wert Ihrer Anwendung unterscheiden.

PROCESS_DPI_UNAWARE 96, da die App keine anderen Skalierungsfaktoren bekannt ist.
PROCESS_SYSTEM_DPI_AWARE Ein Wert, der auf die System-DPI festgelegt ist, da die App davon ausgeht, dass alle Anwendungen den System-DPI verwenden.
PROCESS_PER_MONITOR_DPI_AWARE Der tatsächliche DPI-Wert, der vom Benutzer für diese Anzeige festgelegt wurde.
 

Die Werte von *dpiX und *dpiY sind identisch. Sie müssen nur einen der Werte aufzeichnen, um den DPI-Wert zu bestimmen und entsprechend zu reagieren.

Wenn MONITOR_DPI_TYPEMDT_ANGULAR_DPI oder MDT_RAW_DPI ist, enthält der zurückgegebene DPI-Wert keine Änderungen, die der Benutzer mithilfe des Schiebereglersteuerelements für die Desktopskalierung in Systemsteuerung an der DPI vorgenommen hat.

Weitere Informationen zu DPI-Einstellungen in Systemsteuerung finden Sie im Whitepaper Schreiben DPI-Aware Desktopanwendungen in Windows 8.1 Preview.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 8.1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shellscalingapi.h
Bibliothek Shcore.lib
DLL Shcore.dll

Weitere Informationen

PROCESS_DPI_AWARENESS