SetProcessDpiAwarenessContext-Funktion (winuser.h)
Legt den aktuellen Prozess auf einen angegebenen Dpi-Erkennungskontext (Dots per Inch) fest. Die DPI-Erkennungskontexte stammen aus dem wert der DPI_AWARENESS_CONTEXT .
Hinweis
Es wird empfohlen, die Prozessstandard-DPI-Erkennung über das Anwendungsmanifest und nicht über einen API-Aufruf festzulegen. Weitere Informationen finden Sie unter Festlegen der Standard-DPI-Erkennung für einen Prozess . Das Festlegen der prozessstandardbasierten DPI-Erkennung per API-Aufruf kann zu unerwartetem Anwendungsverhalten führen.
Syntax
BOOL SetProcessDpiAwarenessContext(
[in] DPI_AWARENESS_CONTEXT value
);
Parameter
[in] value
Ein DPI_AWARENESS_CONTEXT festzulegenden Handle.
Rückgabewert
Diese Funktion gibt TRUE zurück, wenn der Vorgang erfolgreich war, andernfalls FALSE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Mögliche Fehler sind ERROR_INVALID_PARAMETER für eine ungültige Eingabe und ERROR_ACCESS_DENIED , wenn der Standard-API-Sensibilisierungsmodus für den Prozess bereits festgelegt wurde (über einen vorherigen API-Aufruf oder innerhalb des Anwendungsmanifests).
Hinweise
Diese API ist eine erweiterte Version der zuvor vorhandenen SetProcessDpiAwareness-API , sodass der Prozessstandard auf die feineren DPI_AWARENESS_CONTEXT-Werte festgelegt werden kann. Am wichtigsten ist, dass Sie dadurch pro Monitor v2 programmgesteuert als Prozessstandardwert festlegen können, was mit der vorherigen API nicht möglich ist.
Diese Methode legt die Standard-DPI_AWARENESS_CONTEXT für alle Threads innerhalb einer Anwendung fest. Die DPI-Sensibilisierung einzelner Threads kann mit der SetThreadDpiAwarenessContext-Methode von der Standardeinstellung geändert werden.
Sie müssen diese API aufrufen, bevor Sie APIs aufrufen, die von der DPI-Erkennung abhängen (einschließlich vor dem Erstellen einer Benutzeroberfläche in Ihrem Prozess). Sobald die API-Sensibilisierung für eine App festgelegt wurde, schlagen alle zukünftigen Aufrufe dieser API fehl. Dies gilt unabhängig davon, ob Sie die DPI-Erkennung im Manifest oder mithilfe dieser API festlegen.
Wenn die DPI-Sensibilisierungsstufe nicht festgelegt ist, ist der Standardwert DPI_AWARENESS_CONTEXT_UNAWARE.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10, Version 1703 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h |
Bibliothek | User32.lib |
DLL | User32.dll |
Weitere Informationen
Festlegen der standardmäßigen DPI-Erkennung für einen Prozess