Метод LinearGradientBrush::SetBlend (gdiplusbrush.h)
Метод LinearGradientBrush::SetBlend задает коэффициенты наложения и позиции смешения этой кисти линейного градиента, чтобы создать настраиваемую смесь.
Синтаксис
Status SetBlend(
[in] const REAL *blendFactors,
[in] const REAL *blendPositions,
[in] INT count
);
Параметры
[in] blendFactors
Тип: const REAL*
Указатель на массив реальных чисел, определяющих коэффициенты смешения. Каждое число в массиве определяет процент конечного цвета и должно находиться в диапазоне от 0,0 до 1,0.
[in] blendPositions
Тип: const REAL*
Указатель на массив реальных чисел, определяющих позиции смешения. Каждое число в массиве указывает процент расстояния между начальной и конечной границей и находится в диапазоне от 0,0 до 1,0, где 0,0 обозначает начальную границу градиента, а 1,0 — конечную границу. Должно быть указано по крайней мере две позиции: первая позиция, которая всегда имеет значение 0,0f, и последняя позиция, которая всегда имеет значение 1,0f. В противном случае поведение не определено. Позиция смешения между 0,0 и 1,0 обозначает линию, параллельную линиям границы, то есть определенную долю расстояния от начальной границы до конечной границы. Например, позиция смешения 0,7 обозначает линию, которая составляет 70 процентов от начальной границы до конечной границы. Цвет является постоянным для линий, параллельных линиям границы.
[in] count
Тип: INT
Целое число, указывающее количество элементов в массиве BlendFactors . Это то же самое, что и количество элементов в массиве blendPositions . Коэффициент смешения по заданному индексу массива соответствует позиции смешения в том же индексе массива.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .
Комментарии
Объект LinearGradientBrush имеет две границы. При заполнении области линейной кистью градиента цвет постепенно меняется по мере перехода от начальной границы к конечной. По умолчанию цвет линейно связан с расстоянием, но можно настроить связь между цветом и расстоянием, вызвав метод LinearGradientBrush::SetBlend .
Примеры
В следующем примере создается линейная кисть градиента, настраивается наложение и используется кисть для заполнения прямоугольника.
VOID Example_SetBlend(HDC hdc)
{
Graphics myGraphics(hdc);
REAL factors[4] = {0.0f, 0.4f, 0.6f, 1.0f};
REAL positions[4] = {0.0f, 0.2f, 0.8f, 1.0f};
Rect rect(0, 0, 100, 50);
LinearGradientBrush linGrBrush(
rect,
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255), // blue
LinearGradientModeHorizontal);
linGrBrush.SetBlend(factors, positions, 4);
myGraphics.FillRectangle(&linGrBrush, rect);
}
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusbrush.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |