PathGradientBrush::SetInterpolationColors 方法 (gdipluspath.h)

PathGradientBrush::SetInterpolationColors 方法设置此路径渐变画笔的预设颜色和混合位置。

语法

Status SetInterpolationColors(
  [in] const Color *presetColors,
  [in] const REAL  *blendPositions,
  [in] INT         count
);

参数

[in] presetColors

类型: const Color*

指向 Color 对象的数组的指针,该数组指定渐变的内插颜色。 presetColors 数组中给定索引的颜色对应于 blendPositions 数组中该索引的混合位置。

[in] blendPositions

类型: REAL*

指向指定混合位置的数组的指针。 每个混合位置是一个介于 0 到 1 之间的数字,其中 0 表示渐变的边界,1 表示中心点。 介于 0 和 1 之间的混合位置指定所有点的集合,这些点是从边界到中心点的距离的一定分数。 例如,混合位置 0.7 指定从边界到中心点的 70% 的所有点的集合。

[in] count

类型: INT

指定 presetColors 数组中 Color 对象数的整数。 这与 blendPositions 数组中的元素数相同。

返回值

类型: 状态

如果方法成功,则返回 Ok,这是 Status 枚举的元素。

如果 方法失败,它将返回 Status 枚举的其他元素之一。

注解

简单路径渐变画笔有两种颜色:边界颜色和中心颜色。 使用此类画笔进行绘制时,从边界路径移动到中心点时,颜色会逐渐从边界颜色更改为中心颜色。 可以通过指定预设颜色数组和混合位置数组来创建更复杂的渐变。

示例

以下示例基于三角路径创建 PathGradientBrush 对象。 PathGradientBrush::SetInterpolationColors 方法将画笔的预设颜色设置为红色、蓝色和水绿色,并将混合位置设置为 0、0、4 和 1。 Graphics::FillRectangle 方法使用路径渐变画笔绘制包含三角路径的矩形。

VOID Example_SetInterpColors(HDC hdc)
{
   Graphics graphics(hdc);

   Point points[] = {Point(100, 0), Point(200, 200), Point(0, 200)};
   PathGradientBrush pthGrBrush(points, 3);

   Color col[] = {
      Color(255, 255, 0, 0),     // red
      Color(255, 0, 0, 255),     // blue
      Color(255, 0, 255, 255)};  // aqua

   REAL pos[] = {
      0.0f,    // red at the boundary
      0.4f,    // blue 40 percent of the way from the boundary to the center
      1.0f};   // aqua at the center

   pthGrBrush.SetInterpolationColors(col, pos, 3);
   graphics.FillRectangle(&pthGrBrush, 0, 0, 300, 300);  
}

要求

要求
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdipluspath.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

画笔和填充形状

颜色

创建路径渐变

使用颜色渐变填充形状

PathGradientBrush

PathGradientBrush::GetInterpolationColors