Freigeben über


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

DPI_AWARENESS_CONTEXT

SetThreadDpiAwarenessContext

Festlegen der standardmäßigen DPI-Erkennung für einen Prozess