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


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

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

Синтаксис

Status GetSurroundColors(
  [in]      Color *colors,
  [in, out] INT   *count
);

Параметры

[in] colors

Тип: Цвет*

Указатель на массив, который получает цвета окружения.

[in, out] count

Тип: INT*

Указатель на целое число, которое при входных данных указывает количество запрошенных цветов. Если метод завершается успешно, этот параметр в выходных данных получает количество полученных цветов. Если метод завершается ошибкой, этот параметр не получает значение.

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

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .

Комментарии

Кисть градиента пути имеет путь границы и центральную точку. Центральная точка имеет один цвет, но вы можете указать разные цвета для нескольких точек на границе. Например, предположим, что для центрального цвета задан красный цвет, а для разных точек на границе — синий, зеленый и желтый. Затем по мере перемещения вдоль границы цвет будет постепенно меняться с синего на зеленый на желтый и обратно на синий. При перемещении по прямой линии от любой точки границы к центральной точке цвет изменится с цвета этой точки границы на красный.

Примеры

В следующем примере создается объект PathGradientBrush на основе треугольного пути, определенного массивом из трех точек. Код вызывает метод PathGradientBrush::SetSurroundColors объекта PathGradientBrush , чтобы указать цвет для каждой точки, определяющей треугольник. Метод PathGradientBrush::GetSurroundColorCount определяет текущее количество объемных цветов (цвета, указанные для пути границ кисти). Затем код выделяет буфер, достаточно большой для получения массива объемных цветов, и вызывает PathGradientBrush::GetSurroundColors для заполнения этого буфера. Наконец, код заполняет небольшой квадрат с каждым цветом окружения кисти.

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

   // Create a path gradient brush and set its surround colors.
   Point pts[] = {
      Point(20, 20), 
      Point(100, 20), 
      Point(100, 100)};

   Color cols[] = {
      Color(255, 255, 0, 0),  // red
      Color(255, 0, 255, 0),  // green
      Color(255, 0, 0, 0)};   // black

   INT count = 3;
   PathGradientBrush pthGrBrush(pts, 3);
   pthGrBrush.SetSurroundColors(cols, &count);
   
   // Obtain information about the path gradient brush.
   INT colorCount = pthGrBrush.GetSurroundColorCount();
   Color* colors = new Color[colorCount];
   pthGrBrush.GetSurroundColors(colors, &colorCount);

   // Fill a small square with each of the surround 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;
}

Требования

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

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

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

Цвет

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

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

PathGradientBrush

PathGradientBrush::GetSurroundColorCount

PathGradientBrush::SetSurroundColors