LinearGradientBrush::SetBlendBellShape 方法 (gdiplusbrush.h)

LinearGradientBrush::SetBlendBellShape 方法设置此线性渐变画笔的混合形状,以基于钟形曲线创建自定义混合。

语法

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

参数

[in] focus

类型: REAL

指定结束颜色位置的实数。 此数字是边界线之间距离的百分比,必须介于 0.0 到 1.0 之间。

[in] scale

类型: REAL

可选。 实数,指定在焦点位置与渐变起始颜色混合的渐变结束颜色的百分比。 此数字必须在 0.0 到 1.0 的范围内。 默认值为 1.0,指定结束颜色为全强度。

返回值

类型: 状态

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

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

备注

默认情况下,颜色从线性渐变画笔) 起始边界处的起始颜色 (颜色逐渐变为线性渐变画笔的结束颜色 (颜色,) 从起始边界移动到结束边界。 可以使用 LinearGradientBrush::SetBlendBellShape 方法自定义起始颜色和结束颜色的定位和混合。

LinearGradientBrush::SetBlendBellShape 方法自定义混合,使其遵循钟形曲线,在渐变边界处具有钟形的底端。 在默认混合中,起始颜色位于线性渐变画笔的起始边界,在应用钟形混合时显示在线性渐变画笔的起始和结束边界处。 结束颜色的位置(在默认混合中)位于结束边界处,位于边界之间,由焦点的值决定。 换句话说,焦点指定钟顶的位置。 例如,焦点值 0.7 将峰值置于起始边界和结束边界之间距离的 70%。 结束颜色在此峰值处显示。

钟形混合中的结束颜色是渐变的默认混合起始颜色与默认混合结束颜色之间的色域的百分比。 例如,假设线性渐变画笔以红色为起始颜色,蓝色为结束颜色。 如果使用刻度值为 0.8 调用 LinearGradientBrush::SetBlendBellShape ,则钟形混合中的结束颜色是红色和蓝色之间 80% 的色调, (20% 红色、80% 蓝色) 。 缩放值为 1.0 会生成 100% 蓝色的结束颜色。

示例

以下示例创建线性渐变画笔,设置钟形混合,并使用画笔填充矩形。 另外两次,代码会设置具有不同值的钟形混合,并且每次都使用画笔填充矩形。

VOID Example_SetBlendBell(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.SetBlendBellShape(0.5f, 0.6f);
   myGraphics.FillRectangle(&linGrBrush, 0, 0, 500, 50);

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

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

要求

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

请参阅

画笔和填充形状

创建线性渐变

使用颜色渐变填充形状

LinearGradientBrush

LinearGradientBrush::GetBlend

LinearGradientBrush::SetBlend

LinearGradientBrush::SetBlendTriangularShape

使用画笔填充形状