Share via


GdiGradientFill-Funktion (wingdi.h)

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

Syntax

BOOL GdiGradientFill(
  [in] HDC        hdc,
  [in] PTRIVERTEX pVertex,
  [in] ULONG      nVertex,
  [in] PVOID      pMesh,
  [in] ULONG      nCount,
  [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 Dreiecksvertex definieren.

[in] nVertex

Die Anzahl der Scheitelpunkte in pVertex.

[in] pMesh

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

[in] nCount

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 hat. GDI interpoliert die Farbe vom linken zum rechten Rand und füllt das Innere 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 hat. 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 das Innere aus. Das Zeichnen erfolgt direkt im Modus 24 und 32 bpp. 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

Hinweis Diese Funktion ist identisch mit GradientFill.
 
Um einem Dreieck eine glatte Schattierung hinzuzufügen, rufen Sie die GdiGradientFill-Funktion mit den drei Dreiecksendpunkten auf. GDI interpoliert linear und füllt das Dreieck aus. Hier ist die Zeichnungsausgabe eines schattierten Dreiecks. Abbildung eines Dreiecks, das sich von orange am oberen Punkt bis magenta im unteren Bereich füllt Um einem Rechteck eine glatte Schattierung hinzuzufügen, rufen Sie GdiGradientFill 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 von dunkel oben bis hell am unteren Rand schattiert . Die GdiGradientFill-Funktion verwendet eine Gittermethode, um die Endpunkte des zu zeichnenden Objekts anzugeben. Alle Scheitelpunkte werden im pVertex-Array an GdiGradientFill übergeben. Der Parameter pMesh gibt an, wie diese Scheitelpunkte verbunden sind, um ein -Objekt zu bilden. 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 untere rechte Grenze 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 GdiGradientFill den Alpha-Member der TRIVERTEX-Struktur nicht verwendet. Um GdiGradientFill mit Transparenz zu verwenden, rufen Sie GdiGradientFill auf, und rufen Sie dann GdiAlphaBlend 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 (windows.h einschließen)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

Bitmapfunktionen

Übersicht über Bitmaps

EMRGRADIENTFILL

GRADIENT_RECT

GRADIENT_TRIANGLE

TRIVERTEX