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 |
---|---|
|
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. |
|
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. |
|
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.
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: 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 |