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


Метод 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

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

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

Цвет

Создание линейного градиента

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

LinearGradientBrush;

LinearGradientBrush::GetBlend

Rect