Метод PathGradientBrush::GetFocusScales (gdipluspath.h)
Метод PathGradientBrush::GetFocusScales получает масштабы фокуса этой кисти градиента пути.
Синтаксис
Status GetFocusScales(
[out] REAL *xScale,
[out] REAL *yScale
);
Параметры
[out] xScale
Тип: REAL*
Указатель на REAL , получающий значение шкалы x фокуса.
[out] yScale
Тип: REAL*
Указатель на REAL , получающий значение шкалы фокуса Y.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .
Комментарии
По умолчанию центральный цвет градиента пути находится в центральной точке. Вызвав PathGradientBrush::SetFocusScales, можно указать, что центральный цвет должен отображаться вдоль пути, окружающего центральную точку. Например, предположим, что путь границы является треугольником, а центральная точка находится в центроиде этого треугольника. Также предположим, что цвет границы — красный, а центральный цвет — синий. Если для шкалы фокуса задано значение (0,2, 0,2), цвет будет синим вдоль границы небольшого треугольника, окружающего центральную точку. Этот маленький треугольник представляет собой main путь границы, масштабируемый на 0,2 в направлении x и 0,2 в направлении y. При рисовании с помощью кисти градиента пути цвет будет постепенно меняться с красного на синий по мере перехода от границы большого треугольника к границе маленького треугольника. Область внутри маленького треугольника будет заполнена синим цветом.
Примеры
В следующем примере создается объект PathGradientBrush на основе треугольного пути. Код задает масштабы фокуса кисти градиента пути (0,2, 0,2), а затем использует кисть градиента пути для заполнения области, содержащей треугольный путь. Наконец, код вызывает метод PathGradientBrush::GetFocusScales объекта PathGradientBrush для получения значений шкалы фокуса x и y.
VOID Example_GetFocusScales(HDC hdc)
{
Graphics graphics(hdc);
Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
// No GraphicsPath object is created. The PathGradientBrush
// object is constructed directly from the array of points.
PathGradientBrush pthGrBrush(points, 3);
Color colors[] = {
Color(255, 255, 0, 0), // red
Color(255, 0, 0, 255)}; // blue
REAL relativePositions[] = {
0.0f, // red at the boundary of the outer triangle
1.0f}; // blue at the boundary of the inner triangle
pthGrBrush.SetInterpolationColors(colors, relativePositions, 2);
// The inner triangle is formed by scaling the outer triangle
// about its centroid. The scaling factor is 0.2 in both
// the x and y directions.
pthGrBrush.SetFocusScales(0.2f, 0.2f);
// Fill a rectangle that is larger than the triangle
// specified in the Point array. The portion of the
// rectangle outside the triangle will not be painted.
graphics.FillRectangle(&pthGrBrush, 0, 0, 200, 200);
// Obtain information about the path gradient brush.
REAL xScale = 0.0f;
REAL yScale = 0.0f;
pthGrBrush.GetFocusScales(&xScale, &yScale);
// The value of xScale is now 0.2.
// The value of yScale is now 0.2.
}
Требования
Минимальная версия клиента | Windows XP, Windows 2000 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |