Freigeben über


LinearGradientBrush::GetInterpolationColorCount-Methode (gdiplusbrush.h)

Die LinearGradientBrush::GetInterpolationColorCount-Methode ruft die Anzahl der Farben ab, die derzeit für diesen linearen Farbverlaufspinsel interpoliert werden sollen.

Syntax

INT GetInterpolationColorCount();

Rückgabewert

Typ: INT

Diese Methode gibt die Anzahl der Farben zurück, die für diesen linearen Farbverlaufspinsel interpoliert werden sollen. Wenn mit LinearGradientBrush::SetInterpolationColors keine Farben festgelegt wurden oder ungültige Positionen an LinearGradientBrush::SetInterpolationColors übergeben wurden, gibt LinearGradientBrush::GetInterpolationColorCount 0 zurück.

Hinweise

Ein einfacher linearer Farbverlaufspinsel hat zwei Farben: eine Farbe an der Startgrenze und eine Farbe an der Endgrenze. Wenn Sie mit einem solchen Pinsel malen, ändert sich die Farbe schrittweise von der Anfangsfarbe zur Endfarbe, während Sie von der Startgrenze zur Endgrenze wechseln. Sie können einen komplexeren Farbverlauf erstellen, indem Sie die LinearGradientBrush::SetInterpolationColors-Methode verwenden, um ein Array von Farben und die entsprechenden Mischpositionen anzugeben, die für diesen linearen Farbverlaufspinsel interpoliert werden sollen.

Sie können die Farben und Füllpositionen abrufen, die derzeit für einen linearen Farbverlaufspinsel festgelegt sind, indem Sie die LinearGradientBrush::GetInterpolationColors-Methode aufrufen. Bevor Sie die LinearGradientBrush::GetInterpolationColors-Methode aufrufen, müssen Sie zwei Puffer zuordnen: einen, um das Array von Farben aufzunehmen, und einen, um das Array der Mischpositionen zu speichern. Sie können die LinearGradientBrush::GetInterpolationColorCount-Methode aufrufen, um die erforderliche Größe dieser Puffer zu bestimmen. Die Größe des Farbpuffers ist der Rückgabewert von LinearGradientBrush::GetInterpolationColorCount multipliziert mit sizeof(Color). Die Größe des Puffers für Blendpositionen ist der Wert von LinearGradientBrush::GetInterpolationColorCount multipliziert mit sizeof( REAL).

Beispiele

Im folgenden Beispiel werden die Farben, die für diesen linearen Farbverlaufspinsel interpoliert werden sollen, auf Rot, Blau und Grün festgelegt und die Mischpositionen auf 0, 0,3 und 1 festgelegt. Der Code ruft die LinearGradientBrush::GetInterpolationColorCount-Methode eines LinearGradientBrush-Objekts auf, um die Anzahl der Farben abzurufen, die derzeit für den Pinsel interpoliert werden sollen. Als Nächstes ruft der Code die Farben und ihre Positionen ab. Anschließend füllt der Code ein kleines Rechteck mit jeder Farbe aus.

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

   // Create a linear gradient brush, and set the colors to be interpolated.
   Color col[] = {
      Color(255, 255, 0, 0),   // red
      Color(255, 0, 0, 255),   // blue
      Color(255, 0, 255, 0)};  // green

   REAL pos[] = {
      0.0f,   // red at the left edge
      0.3f,   // blue at 30 percent of the distance from 
              // left edge to right edge
      1.0f};  // green at the right edge

   LinearGradientBrush linGrBrush(
      Point(0, 0), 
      Point(100, 0),
      Color(255, 0, 0, 0),         // black
      Color(255, 255, 255, 255));  // white

   linGrBrush.SetInterpolationColors(col, pos, 3);

   // Obtain information about the linear gradient brush.
   INT    colorCount = 0;
   Color* colors = NULL;
   REAL*  positions = NULL;

   // How many colors have been specified to be interpolated 
   // for this brush?
   colorCount = linGrBrush.GetInterpolationColorCount();

   // Allocate a buffer large enough to hold the set of colors.
   colors = new Color[colorCount];

   // Allocate a buffer to hold the relative positions of the colors.
   positions = REAL[colorCount];

   // Get the colors and their relative positions.
   linGrBrush.GetInterpolationColors(colors, positions, colorCount);

   // Fill a small rectangle with each of the colors.
   SolidBrush* pSolidBrush;
   for(INT j = 0; j < colorCount; j++)
   {
      pSolidBrush = new SolidBrush(colors[j]);
      myGraphics.FillRectangle(pSolidBrush, 15*j, 0, 10, 10);
      delete(pSolidBrush);
   }
}

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

LinearGradientBrush::SetInterpolationColors

Pathgradientbrush

Rect

Solidbrush