DPI_AWARENESS-Enumeration (windef.h)

Gibt die Dpi-Einstellung (Dots per Inch) für einen Thread, einen Prozess oder ein Fenster an.

Syntax

typedef enum DPI_AWARENESS {
  DPI_AWARENESS_INVALID = -1,
  DPI_AWARENESS_UNAWARE = 0,
  DPI_AWARENESS_SYSTEM_AWARE = 1,
  DPI_AWARENESS_PER_MONITOR_AWARE = 2
} ;

Konstanten

 
DPI_AWARENESS_INVALID
Wert: -1
Ungültige DPI-Erkennung. Dies ist ein ungültiger DPI-Sensibilisierungswert.
DPI_AWARENESS_UNAWARE
Wert: 0
DPI nicht bekannt. Dieser Prozess wird nicht für DPI-Änderungen skaliert und es wird immer davon ausgegangen, dass er einen Skalierungsfaktor von 100 % (96 DPI) aufweist. Es wird automatisch vom System auf jede andere DPI-Einstellung skaliert.
DPI_AWARENESS_SYSTEM_AWARE
Wert: 1
System-DPI-fähig. Dieser Prozess wird für DPI-Änderungen nicht skaliert. Es fragt einmal den DPI-Wert ab und verwendet diesen Wert für die Lebensdauer des Prozesses. Wenn sich der DPI-Wert ändert, wird der Prozess nicht an den neuen DPI-Wert angepasst. Es wird automatisch vom System hoch- oder herunterskaliert, wenn sich der DPI-Wert vom Systemwert ändert.
DPI_AWARENESS_PER_MONITOR_AWARE
Wert: 2
Dpi-fähig pro Monitor. Dieser Prozess überprüft den DPI-Wert, wenn er erstellt wird, und passt den Skalierungsfaktor an, wenn sich der DPI-Wert ändert. Diese Prozesse werden vom System nicht automatisch skaliert.

Hinweise

In früheren Versionen von Windows wurden DPI-Werte nur einmal für eine gesamte Anwendung festgelegt. Für diese Apps hat der PROCESS_DPI_AWARENESS Typ den Typ der DPI-Erkennung für die gesamte Anwendung bestimmt. Derzeit wird die DPI-Erkennung auf einzelner Thread-, Fenster- oder Prozessebene definiert und durch den DPI_AWARENESS Typ angegeben. Während der Fokus von einer Prozessebene auf eine Threadebene verschoben wurde, sind die verschiedenen Arten der DPI-Erkennung identisch: unwissend, systemfähig und pro Monitor. Ausführliche Beschreibungen und einige Beispiele für die verschiedenen DPI-Arten finden Sie unter PROCESS_DPI_AWARENESS.

Die alte Empfehlung bestand darin, die DPI-Sensibilisierungsebene im Anwendungsmanifest mithilfe der Einstellung dpiAware zu definieren, wie in PROCESS_DPI_AWARENESS erläutert. Nachdem die DPI-Erkennung nun an Threads und Fenster und nicht an eine gesamte Anwendung gebunden ist, wird dem App-Manifest eine neue Fenstereinstellung hinzugefügt. Diese Einstellung ist dpiAwareness und überschreibt jede dpiAware-Einstellung , wenn beide im Manifest vorhanden sind. Obwohl es weiterhin empfohlen wird, das Manifest zu verwenden, können Sie jetzt die DPI-Erkennung ändern, während die App ausgeführt wird, indem Sie SetThreadDpiAwarenessContext verwenden.

Es ist wichtig zu beachten, dass Sie, wenn Ihre Anwendung über ein DPI_AWARENESS_PER_MONITOR_AWARE Fenster verfügt, dafür verantwortlich sind, den DPI-Wert zu verfolgen, indem Sie auf WM_DPICHANGED Nachrichten reagieren.

Beispiele

Dieser Codeausschnitt veranschaulicht, wie Sie den Wert DPI_AWARENESS_SYSTEM_AWARE in Ihrem Anwendungsmanifest festlegen.

<dpiAwareness>System</dpiAwareness>

Dieser Codeausschnitt veranschaulicht, wie Sie den Wert DPI_AWARENESS_PER_MONITOR_AWARE in Ihrem Anwendungsmanifest festlegen.

<dpiAwareness>PerMonitor</dpiAwareness>

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Nicht unterstützt
Kopfzeile windef.h

Weitere Informationen

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext