Freigeben über


LinearGradientBrush::SetBlend-Methode (gdiplusbrush.h)

Die LinearGradientBrush::SetBlend-Methode legt die Blendfaktoren und die Blendpositionen dieses linearen Farbverlaufspinsels fest, um eine benutzerdefinierte Mischung zu erstellen.

Syntax

Status SetBlend(
  [in] const REAL *blendFactors,
  [in] const REAL *blendPositions,
  [in] INT        count
);

Parameter

[in] blendFactors

Typ: const REAL*

Zeiger auf ein Array von reellen Zahlen, die Blendfaktoren angeben. Jede Zahl im Array gibt einen Prozentsatz der Endfarbe an und sollte im Bereich von 0,0 bis 1,0 liegen.

[in] blendPositions

Typ: const REAL*

Zeiger auf ein Array reelle Zahlen, die Mischpositionen angeben. Jede Zahl im Array gibt einen Prozentsatz des Abstands zwischen der Anfangsgrenze und der Endgrenze an und liegt im Bereich von 0,0 bis 1,0, wobei 0,0 die Anfangsgrenze des Farbverlaufs und 1,0 die Endgrenze angibt. Es müssen mindestens zwei Positionen angegeben werden: die erste Position, die immer 0,0f ist, und die letzte Position, die immer 1,0f ist. Andernfalls ist das Verhalten nicht definiert. Eine Mischposition zwischen 0,0 und 1,0 gibt eine Linie parallel zu den Begrenzungslinien an, die einen bestimmten Bruchteil des Abstands von der Startgrenze zur Endgrenze darstellt. Beispielsweise gibt eine Mischposition von 0,7 die Linie an, die 70 Prozent des Abstands von der Startgrenze zur Endgrenze beträgt. Die Farbe ist konstant für Linien, die parallel zu den Begrenzungslinien sind.

[in] count

Typ: INT

Eine ganze Zahl, die die Anzahl der Elemente im BlendFactors-Array angibt. Dies entspricht der Anzahl der Elemente im BlendPositions-Array . Der Blendfaktor an einem bestimmten Arrayindex entspricht der Blendposition an demselben Arrayindex.

Rückgabewert

Typ: Status

Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .

Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.

Bemerkungen

Ein LinearGradientBrush-Objekt weist zwei Grenzen auf. Wenn Sie einen Bereich mit einem linearen Farbverlaufpinsel füllen, ändert sich die Farbe allmählich, wenn Sie von der Anfangsgrenze zur Endgrenze wechseln. Standardmäßig ist die Farbe linear mit der Entfernung verknüpft. Sie können jedoch die Beziehung zwischen Farbe und Entfernung anpassen, indem Sie die LinearGradientBrush::SetBlend-Methode aufrufen.

Beispiele

Im folgenden Beispiel wird ein linearer Farbverlaufpinsel erstellt, eine benutzerdefinierte Mischung festgelegt und der Pinsel verwendet, um ein Rechteck zu füllen.

VOID Example_SetBlend(HDC hdc)
{
   Graphics myGraphics(hdc);

   REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
   REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
   Rect rect(0, 0, 100, 50);

   LinearGradientBrush linGrBrush(
      rect,
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 0, 255),  // blue
      LinearGradientModeHorizontal);

   linGrBrush.SetBlend(factors, positions, 4);
   myGraphics.FillRectangle(&linGrBrush, rect);
}

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile gdiplusbrush.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Pinsel und gefüllte Formen

Farbe

Erstellen eines linearen Farbverlaufs

Füllen einer Form mit einem Farbverlauf

LinearGradientBrush

LinearGradientBrush::GetBlend

Rect