Метод 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 |
См. также раздел
Заполнение фигуры цветным градиентом