Поделиться через


Метод PathGradientBrush::GetInterpolationColorCount (gdipluspath.h)

Метод PathGradientBrush::GetInterpolationColorCount получает количество предустановленных цветов, которые в настоящее время заданы для этой кисти градиента пути.

Синтаксис

INT GetInterpolationColorCount();

Возвращаемое значение

Тип: INT

Этот метод возвращает количество предустановленных цветов, указанных в настоящее время для этой кисти градиента пути.

Комментарии

Простая кисть градиента пути имеет два цвета: цвет границы и центральный цвет. При рисовании такой кистью цвет постепенно меняется от цвета границы к центру при переходе от пути границы к центральной точке. Вы можете создать более сложный градиент, указав массив предустановленных цветов и массив позиций наложения.

Цвета интерполяции и позиции интерполяции, заданные в данный момент для объекта PathGradientBrush , можно получить, вызвав метод PathGradientBrush::GetInterpolationColors этого объекта PathGradientBrush . Перед вызовом метода PathGradientBrush::GetInterpolationColors необходимо выделить два буфера: один для хранения массива цветов интерполяции, а другой для хранения массива позиций интерполяции. Чтобы определить требуемый размер этих буферов, можно вызвать метод PathGradientBrush::GetInterpolationColorCount объекта PathGradientBrush . Размер буфера цвета — это возвращаемое значение GetInterpolationColorCount , умноженное на sizeof(Color). Размер буфера позиций — это значение PathGradientBrush::GetInterpolationColorCount , умноженное на sizeof( REAL).

Примеры

В следующем примере создается объект PathGradientBrush из треугольного пути. Код задает для предустановленных цветов красный, синий и aqua, а для позиций смешения — 0, 0,6 и 1. Код вызывает метод PathGradientBrush::GetInterpolationColorCount объекта PathGradientBrush , чтобы получить количество готовых цветов, заданных для кисти. Затем код выделяет два буфера: один для хранения массива предустановленных цветов, а другой для хранения массива позиций наложения. Вызов метода PathGradientBrush::GetInterpolationColors объекта PathGradientBrush заполняет буферы предустановленными цветами и позициями смешения. Наконец, код заполняет небольшой квадрат каждым из предустановленных цветов.

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; 
}

Требования

Требование Значение
Минимальная версия клиента Windows XP, Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdipluspath.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Кисти и закрашенные фигуры

Цвет

Создание градиента пути

Заполнение фигуры цветным градиентом

PathGradientBrush

PathGradientBrush::GetInterpolationColors

PathGradientBrush::SetInterpolationColors