GradientFill-Funktion (wingdi.h)

Die GradientFill-Funktion füllt Rechteck- und Dreiecksstrukturen aus.

Syntax

BOOL GradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nMesh,
  [in] ULONG      ulMode
);

Parameter

[in] hdc

Ein Handle für den Zielgerätekontext.

[in] pVertex

Ein Zeiger auf ein Array von TRIVERTEX-Strukturen , die jeweils einen Scheitelpunkt definieren.

[in] nVertex

Die Anzahl der Scheitelpunkte in pVertex.

[in] pMesh

Ein Array von GRADIENT_TRIANGLE Strukturen im Dreiecksmodus oder ein Array von GRADIENT_RECT Strukturen im Rechteckmodus.

[in] nMesh

Die Anzahl der Elemente (Dreiecke oder Rechtecke) in pMesh.

[in] ulMode

Der Farbverlaufsfüllmodus. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
GRADIENT_FILL_RECT_H
In diesem Modus beschreiben zwei Endpunkte ein Rechteck. Das Rechteck ist so definiert, dass es eine konstante Farbe (angegeben durch die TRIVERTEX-Struktur ) für den linken und rechten Rand aufweist. GDI interpoliert die Farbe vom linken zum rechten Rand und füllt den Innenraum aus.
GRADIENT_FILL_RECT_V
In diesem Modus beschreiben zwei Endpunkte ein Rechteck. Das Rechteck ist so definiert, dass es eine konstante Farbe (angegeben durch die TRIVERTEX-Struktur ) für den oberen und unteren Rand aufweist. GDI interpoliert die Farbe vom oberen zum unteren Rand und füllt den Innenraum aus.
GRADIENT_FILL_TRIANGLE
In diesem Modus wird ein Array von TRIVERTEX-Strukturen zusammen mit einer Liste von Arrayindizes, die separate Dreiecke beschreiben, an GDI übergeben. GDI führt eine lineare Interpolation zwischen Dreiecksvertices durch und füllt den Innenraum aus. Das Zeichnen erfolgt direkt im 24- und 32-bpp-Modus. Das Dithering wird im 16-, 8-, 4- und 1-bpp-Modus ausgeführt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE.

Hinweise

Um einem Dreieck glatte Schattierung hinzuzufügen, rufen Sie die GradientFill-Funktion mit den drei Dreiecksendpunkten auf. GDI interpoliert linear und füllt das Dreieck aus. Hier sehen Sie die Zeichnungsausgabe eines schattierten Dreiecks.

Abbildung eines Dreiecks, das sich von orange am oberen Punkt bis hin zu Magenta auf der Unterseite füllt Um einem Rechteck glatte Schattierung hinzuzufügen, rufen Sie GradientFill mit den Koordinaten oben links und unten rechts des Rechtecks auf. Beim Zeichnen eines Rechtecks werden zwei Schattierungsmodi verwendet. Im horizontalen Modus wird das Rechteck von links nach rechts schattiert. Im vertikalen Modus wird das Rechteck von oben nach unten schattiert. Hier ist die Zeichnungsausgabe von zwei schattierten Rechtecken – eines im horizontalen Modus, das andere im vertikalen Modus:Abbildung eines Rechtecks, das von dunkel auf der linken Seite zu Hell auf der rechten Seite schattiertAbbildung eines Rechtecks, das oben von dunkel bis hell am unteren Rand schattiert Die GradientFill-Funktion verwendet eine Gittermethode, um die Endpunkte des zu zeichnenden Objekts anzugeben. Alle Scheitelpunkte werden im pVertex-Array an GradientFill übergeben. Der pMesh-Parameter gibt an, wie diese Scheitelpunkte mit einem Objekt verbunden sind. Beim Füllen eines Rechtecks zeigt pMesh auf ein Array von GRADIENT_RECT Strukturen. Jede GRADIENT_RECT-Struktur gibt den Index von zwei Scheitelpunkten im pVertex-Array an. Diese beiden Scheitelpunkte bilden die obere linke und die untere rechte Begrenzung eines Rechtecks.

Beim Füllen eines Dreiecks zeigt pMesh auf ein Array von GRADIENT_TRIANGLE Strukturen. Jede GRADIENT_TRIANGLE-Struktur gibt den Index von drei Scheitelpunkten im pVertex-Array an. Diese drei Scheitelpunkte bilden ein Dreieck.

Um die Hardwarebeschleunigung zu vereinfachen, muss diese Routine im Dreiecksinnenraum nicht pixelgenau sein.

Beachten Sie, dass GradientFill das Alpha-Element der TRIVERTEX-Struktur nicht verwendet. Um GradientFill mit Transparenz zu verwenden, rufen Sie GradientFill auf, und rufen Sie dann AlphaBlend mit den gewünschten Werten für den Alphakanal jedes Scheitelpunkts auf.

Weitere Informationen finden Sie unter Smooth Shading, Zeichnen eines schattierten Dreiecks und Zeichnen eines schattierten Rechtecks.

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 Msimg32.lib
DLL Msimg32.dll

Weitere Informationen

Bitmapfunktionen

Übersicht über Bitmaps

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX