Метод PathGradientBrush::SetTransform (gdipluspath.h)
Метод PathGradientBrush::SetTransform задает матрицу преобразования этой кисти градиента пути.
Синтаксис
Status SetTransform(
[in] const Matrix *matrix
);
Параметры
[in] matrix
Тип: const Matrix*
Указатель на объект Matrix , указывающий матрицу преобразования.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Объект PathGradientBrush имеет объект GraphicsPath , который служит в качестве пути границы для кисти. При рисовании кистью градиента пути заполняется только область внутри пути границы. Если матрица преобразования кисти представляет любое преобразование, отличное от удостоверения, то путь границы преобразуется в соответствии с этой матрицей во время отрисовки, и заполняется только область внутри преобразованного пути.
Преобразование применяется только во время отрисовки. Путь границы, хранящийся объектом PathGradientBrush , не изменяется методом PathGradientBrush::SetTransform .
Примеры
В следующем примере создается объект PathGradientBrush на основе треугольного пути. Метод Graphics::FillRectangle использует кисть градиента пути для рисования прямоугольника, содержащего треугольный путь. Затем код создает объект Matrix , представляющий составное преобразование (повернуть, а затем перевести), и передает адрес этого объекта Matrix методу PathGradientBrush::SetTransform объекта PathGradientBrush . Код вызывает FillRectangle во второй раз, чтобы закрасить тот же прямоугольник с помощью преобразованной кисти градиента пути.
VOID Example_SetTransform(HDC hdc)
{
Graphics graphics(hdc);
Point pts[] = {
Point(0, 0),
Point(100, 0),
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);
// Fill an area with the path gradient brush (no transformation).
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
// Set the transformation for the brush (rotate, then translate).
Matrix matrix(0.0f, 1.0f, -1.0f, 0.0f, 150.0f, 60.0f);
pthGrBrush.SetTransform(&matrix);
// Fill the same area with the transformed path gradient brush.
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Заполнение фигуры цветным градиентом
PathGradientBrush::GetTransform
PathGradientBrush::MultiplyTransform
PathGradientBrush::ResetTransform
PathGradientBrush::RotateTransform