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


Метод LinearGradientBrush::SetBlendTriangularShape (gdiplusbrush.h)

Метод LinearGradientBrush::SetBlendTriangularShape задает форму смешения этой кисти линейного градиента, чтобы создать настраиваемую смесь на основе треугольной фигуры.

Синтаксис

Status SetBlendTriangularShape(
  [in] REAL focus,
  [in] REAL scale
);

Параметры

[in] focus

Тип: REAL

Вещественное число, указывающее позицию конечного цвета. Это число в процентах от расстояния между линиями границы и должно находиться в диапазоне от 0,0 до 1,0.

[in] scale

Тип: REAL

Необязательный элемент. Реальное число, указывающее процент конечного цвета градиента, который смешивается в положении фокуса с начальным цветом градиента. Это число должно находиться в диапазоне от 0,0 до 1,0. Значение по умолчанию — 1,0, указывающее, что конечный цвет имеет полную интенсивность.

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

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

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

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

Комментарии

По умолчанию цвет постепенно меняется от начального цвета (цвет на начальной границе кисти линейного градиента) до конечного цвета (цвет на конечной границе линейной кисти градиента) по мере перехода от начальной границы к конечной границе. Вы можете настроить расположение и смешивание начального и конечного цветов с помощью метода LinearGradientBrush::SetBlendTriangularShape .

Метод LinearGradientBrush::SetBlendTriangularShape настраивает смесь таким образом, чтобы оно следовало за треугольной фигурой с крайними границами основания треугольника в границах градиента. Начальный цвет, который в смеси по умолчанию находится на начальной границе линейной кисти градиента, отображается на начальной и конечной границах линейной кисти градиента при применении смешения треугольной формы. Позиция конечного цвета, который в смеси по умолчанию находится на конечной границе, находится где-то между границами и определяется значением фокуса. Другими словами, фокус определяет положение вершины треугольника. Например, значение фокуса 0,5 помещает пиковую половину между начальной и конечной границами. Конечный цвет отображается на этом пике.

Конечный цвет в треугольной форме — это процент от гаммы между начальным цветом градиента по умолчанию и конечным цветом по умолчанию. Например, предположим, что линейная кисть градиента построена с красным цветом в качестве начального и синим цветом в качестве конечного цвета. Если linearGradientBrush::SetBlendTriangularShape вызывается со значением шкалы 0,3, то конечным цветом в треугольной форме является оттенок, который составляет 30 процентов от красного и синего (70 процентов красного, 30 процентов синего). Значение шкалы 1,0 создает конечный цвет, равный 100 процентам синего.

Примеры

В следующем примере создается линейная градиентная кисть, устанавливается треугольная смесь и используется кисть для заполнения прямоугольника. Еще дважды код задает треугольную смесь с разными значениями и каждый раз использует кисть для заполнения прямоугольника.

VOID Example_SetBlendTri(HDC hdc)
{
   Graphics myGraphics(hdc);

   LinearGradientBrush linGrBrush(
      Point(0, 0),
      Point(500, 0),
      Color(255, 255, 0, 0),   // red
      Color(255, 0, 0, 255));  // blue

   linGrBrush.SetBlendTriangularShape(0.5f, 0.6f);
   myGraphics.FillRectangle(&linGrBrush, 0, 0, 500, 50);

   linGrBrush.SetBlendTriangularShape(0.5f, 0.8f); 
   myGraphics.FillRectangle(&linGrBrush, 0, 75, 500, 50);

   linGrBrush.SetBlendTriangularShape(0.5f, 1.0f); 
   myGraphics.FillRectangle(&linGrBrush, 0, 150, 500, 50);
}

Требования

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

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

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

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

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

LinearGradientBrush;

LinearGradientBrush::GetBlend

LinearGradientBrush::SetBlend

LinearGradientBrush::SetBlendBellShape

Point