Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |