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
Erstellen eines linearen Farbverlaufs
Füllen einer Form mit einem Farbverlauf
LinearGradientBrush::GetInterpolationColors