Freigeben über


PathGradientBrush::GetInterpolationColors-Methode (gdipluspath.h)

Die PathGradientBrush::GetInterpolationColors-Methode ruft die voreingestellten Farben und Mischpositionen ab, die derzeit für diesen Pfadfarbverlaufpinsel angegeben sind.

Syntax

Status GetInterpolationColors(
  [out] Color *presetColors,
  [out] REAL  *blendPositions,
  [in]  INT   count
);

Parameter

[out] presetColors

Typ: Farbe*

Zeiger auf ein Array, das die voreingestellten Farben empfängt. Eine Farbe eines bestimmten Indexes im PresetColors-Array entspricht der Mischposition desselben Indexes im BlendPositions-Array .

[out] blendPositions

Typ: REAL*

Zeiger auf ein Array, das die Mischpositionen empfängt. Jede Mischposition ist eine Zahl von 0 bis 1, wobei 0 die Grenze des Farbverlaufs und 1 den Mittelpunkt angibt. Eine Mischposition zwischen 0 und 1 gibt den Satz aller Punkte an, die einen bestimmten Bruchteil des Abstands von der Grenze zum Mittelpunkt aufweisen. Beispielsweise gibt eine Mischposition von 0,7 den Satz aller Punkte an, die 70 Prozent des Weges von der Grenze zum Mittelpunkt aufweisen.

[in] count

Typ: INT

Ganzzahl, die die Anzahl der Elemente im PresetColors-Array angibt. Dies entspricht der Anzahl der Elemente im BlendPositions-Array .

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.

Hinweise

Ein einfacher Pfadfarbverlaufpinsel hat zwei Farben: eine Begrenzungsfarbe und eine mittlere Farbe. Wenn Sie mit einem solchen Pinsel malen, ändert sich die Farbe allmählich von der Begrenzungsfarbe zur Mittleren Farbe, während Sie vom Begrenzungspfad zum Mittelpunkt wechseln. Sie können einen komplexeren Farbverlauf erstellen, indem Sie ein Array von voreingestellten Farben und ein Array von Mischpositionen angeben.

Bevor Sie die PathGradientBrush::GetInterpolationColors-Methode aufrufen, müssen Sie zwei Puffer zuordnen: einen, um das Array der voreingestellten Farben aufzunehmen, und einer, um das Array der Mischpositionen zu speichern. Sie können die PathGradientBrush::GetInterpolationColorCount-Methode des PathGradientBrush-Objekts aufrufen, um die erforderliche Größe dieser Puffer zu bestimmen. Die Größe des Farbpuffers ist der Rückgabewert von PathGradientBrush::GetInterpolationColorCount multipliziert mit sizeof(Color). Die Größe des Positionspuffers ist der Wert von PathGradientBrush::GetInterpolationColorCount multipliziert mit sizeof( REAL).

Beispiele

Im folgenden Beispiel wird ein PathGradientBrush-Objekt aus einem dreieckigen Pfad erstellt. Der Code legt die voreingestellten Farben auf Rot, Blau und Aqua und die Mischpositionen auf 0, 0,6 und 1 fest. Der Code ruft die PathGradientBrush::GetInterpolationColorCount-Methode des PathGradientBrush-Objekts auf, um die Anzahl der voreingestellten Farben abzurufen, die derzeit für den Pinsel festgelegt sind. Als Nächstes ordnet der Code zwei Puffer zu: einen für das Array der voreingestellten Farben und einer für das Array der Mischpositionen. Der Aufruf der PathGradientBrush::GetInterpolationColors-Methode des PathGradientBrush-Objekts füllt die Puffer mit den voreingestellten Farben und den Mischpositionen aus. Schließlich füllt der Code ein kleines Quadrat mit jeder der voreingestellten Farben aus.

VOID Example_GetInterpColors(HDC hdc)
{
   Graphics graphics(hdc);

   // Create a path gradient brush from an array of points, and
   // set the interpolation colors for that brush.

   Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
   PathGradientBrush pthGrBrush(points, 3);

   Color col[] = {
      Color(255, 255, 0, 0),     // red
      Color(255, 0, 0, 255),     // blue
      Color(255, 0, 255, 255)};  // aqua

   REAL pos[] = {
      0.0f,    // red at the boundary
      0.6f,    // blue 60 percent of the way from the boundary to the center
      1.0f};   // aqua at the center

   pthGrBrush.SetInterpolationColors(col, pos, 3);

   // Obtain information about the path gradient brush.
   INT colorCount = pthGrBrush.GetInterpolationColorCount();
   Color* colors = new Color[colorCount];
   REAL* positions = new REAL[colorCount];
   pthGrBrush.GetInterpolationColors(colors, positions, colorCount);

   // Fill a small square with each of the interpolation colors.
   SolidBrush solidBrush(Color(255, 255, 255, 255));

   for(INT j = 0; j < colorCount; ++j)
   {
      solidBrush.SetColor(colors[j]);
      graphics.FillRectangle(&solidBrush, 15*j, 0, 10, 10);
   }

   delete [] colors;
   delete [] positions; 
}

Anforderungen

Anforderung Wert
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 gdipluspath.h (include Gdiplus.h)
Bibliothek Gdiplus.lib
DLL Gdiplus.dll

Weitere Informationen

Pinsel und gefüllte Formen

Farbe

Erstellen eines Pfadverlaufs

Füllen einer Form mit einem Farbverlauf

Pathgradientbrush

PathGradientBrush::GetInterpolationColorCount

PathGradientBrush::SetInterpolationColors