Freigeben über


SetGraphicsMode-Funktion (wingdi.h)

Die SetGraphicsMode-Funktion legt den Grafikmodus für den angegebenen Gerätekontext fest.

Syntax

int SetGraphicsMode(
  [in] HDC hdc,
  [in] int iMode
);

Parameter

[in] hdc

Ein Handle für den Gerätekontext.

[in] iMode

Der Grafikmodus. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
GM_COMPATIBLE
Legt den Grafikmodus fest, der mit 16-Bit-Windows kompatibel ist. Dies ist der Standardmodus. Wenn dieser Wert angegeben wird, kann die Anwendung die Transformation von Welt zu Gerät nur ändern, indem Funktionen aufgerufen werden, die Fenster- und Viewportausdehnungen und Ursprünge festlegen, aber nicht mithilfe von SetWorldTransform oder ModifyWorldTransform. bei Aufrufen dieser Funktionen tritt ein Fehler auf. Beispiele für Funktionen, die Fenster- und Viewportausdehnungen und Ursprünge festlegen, sind SetViewportExtEx und SetWindowExtExtEx.
GM_ADVANCED
Legt den erweiterten Grafikmodus fest, der Welttransformationen zulässt. Dieser Wert muss angegeben werden, wenn die Anwendung die Welttransformation für den angegebenen Gerätekontext festlegt oder ändert. In diesem Modus entsprechen alle Grafiken, einschließlich der Textausgabe, vollständig der im Gerätekontext angegebenen Transformation von Welt zu Gerät.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der alte Grafikmodus.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Hinweise

Es gibt drei Bereiche, in denen sich die Grafikausgabe je nach Grafikmodus unterscheidet:

  1. Textausgabe: Im GM_COMPATIBLE-Modus verhält sich die TrueType-Textausgabe (oder Vektorschriftart) ähnlich wie die Textausgabe von Rasterschriftarten in Bezug auf die Transformationen von Welt zu Gerät im DC. Der TrueType-Text wird immer von links nach rechts und rechts nach oben geschrieben, auch wenn der Rest der Grafiken auf der x- oder y-Achse gedreht wird. Nur die Höhe des TrueType-Texts (oder der Vektorschriftart) wird skaliert. Die einzige Möglichkeit zum Schreiben von Text, der im GM_COMPATIBLE Modus nicht horizontal ist, besteht darin, eine nonzero-Escapement und -Ausrichtung für die in diesem Gerätekontext ausgewählte logische Schriftart anzugeben.

    Im GM_ADVANCED Modus entspricht die Textausgabe von TrueType (oder Vektorschriftart) vollständig der Transformation von Welt zu Gerät im Gerätekontext. Die Rasterschriftarten verfügen nur über sehr eingeschränkte Transformationsfunktionen (Dehnung um einige ganzzahlige Faktoren). Die Grafikgeräteschnittstelle (Graphics Device Interface, GDI) versucht, die bestmögliche Ausgabe mit Rasterschriftarten für nichttrivielle Transformationen zu erzeugen.

  2. Rechteckausschluss: Wenn der Standardmäßige GM_COMPATIBLE Grafikmodus festgelegt ist, schließt das System die unteren und rechten Kanten aus, wenn Rechtecke gezeichnet werden.

    Der GM_ADVANCED Grafikmodus ist erforderlich, wenn Anwendungen Rechtecke zeichnen möchten, die unten rechts inklusive sind.

  3. Bogenzeichnung: Wenn der Standardmäßige GM_COMPATIBLE Grafikmodus festgelegt ist, zeichnet GDI Bögen mit der aktuellen Bogenrichtung im Geräteraum. Bei dieser Konvention berücksichtigen Bogen keine Transformationen von Seiten zu Gerät, die ein Umdrehen entlang der x- oder y-Achse erfordern.

    Wenn der GM_ADVANCED Grafikmodus festgelegt ist, zeichnet GDI immer Bögen gegen den Uhrzeigersinn im logischen Raum. Dies entspricht der Aussage, dass im GM_ADVANCED Grafikmodus sowohl Die Lichtbogensteuerungspunkte als auch die Bögen selbst die Welt-zu-Gerät-Transformation des Gerätekontexts vollständig respektieren.

Beispiele

Ein Beispiel finden Sie unter Verwenden von Koordinatenräumen und Transformationen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wingdi.h (einschließlich Windows.h)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

Koordinatenraum und Transformationsfunktionen

Übersicht über Koordinatenräume und Transformationen

CreateDC

GetArcDirection

GetDC

GetGraphicsMode

ModifyWorldTransform

SetArcDirection

SetViewportExtEx

SetViewportExtent

SetWindowExtExtEx

SetWindowExtent

SetWorldTransform