GradientFill 函数 (wingdi.h)
GradientFill 函数填充矩形和三角形结构。
语法
BOOL GradientFill(
[in] HDC hdc,
[in] PTRIVERTEX pVertex,
[in] ULONG nVertex,
[in] PVOID pMesh,
[in] ULONG nMesh,
[in] ULONG ulMode
);
参数
[in] hdc
目标设备上下文的句柄。
[in] pVertex
指向 TRIVERTEX 结构的数组的指针,每个结构都定义顶点。
[in] nVertex
pVertex 中的顶点数。
[in] pMesh
三角形模式下 GRADIENT_TRIANGLE 结构的数组,或矩形模式下 GRADIENT_RECT 结构的数组。
[in] nMesh
pMesh 中) (三角形或矩形的元素数。
[in] ulMode
渐变填充模式。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
在此模式下,两个终结点描述一个矩形。 矩形定义为具有由 TRIVERTEX 结构) 为左边缘和右边缘指定的恒定颜色 (。 GDI 内插从左到右边缘的颜色,并填充内部。 |
|
在此模式下,两个终结点描述一个矩形。 矩形定义为具有由 TRIVERTEX 结构) 为上边缘和下边缘指定的恒定颜色 (。 GDI 内插从上到下边缘的颜色,并填充内部。 |
|
在此模式下, 将 TRIVERTEX 结构的数组以及描述单独三角形的数组索引列表传递给 GDI。 GDI 在三角形顶点之间执行线性内插,并填充内部。 绘图在 24 和 32 bpp 模式下直接完成。 抖抖在 16、8、4 和 1 bpp 模式下执行。 |
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。
注解
若要向三角形添加平滑着色,请使用三个三角形终结点调用 GradientFill 函数。 GDI 将以线性方式内插并填充三角形。 下面是着色三角形的绘图输出。
若要向矩形添加平滑底纹,请使用矩形的左上角和右下角坐标调用 GradientFill 。 绘制矩形时使用两种着色模式。 在水平模式下,矩形从左到右着色。 在垂直模式下,矩形从上到下着色。 下面是两个带阴影的矩形的绘图输出 - 一个处于水平模式,另一个处于垂直模式: 的GradientFill 函数使用网格方法指定要绘制的对象的终结点。 所有顶点都传递到 pVertex 数组中的 GradientFill。 pMesh 参数指定如何连接这些顶点以形成对象。 填充矩形时, pMesh 指向 GRADIENT_RECT 结构的数组。 每个 GRADIENT_RECT 结构指定 pVertex 数组中两个顶点的索引。 这两个顶点构成了一个矩形的左上边界和右下边界。在填充三角形的情况下, pMesh 指向 GRADIENT_TRIANGLE 结构的数组。 每个 GRADIENT_TRIANGLE 结构指定 pVertex 数组中三个顶点的索引。 这三个顶点构成一个三角形。
为了简化硬件加速,此例程不需要在三角形内部实现像素完美。
请注意,GradientFill 不使用 TRIVERTEX 结构的 Alpha 成员。 若要使用具有透明度的 GradientFill,请调用 GradientFill,然后使用每个顶点的 alpha 通道的所需值调用 AlphaBlend 。
有关详细信息,请参阅 平滑底纹、 绘制着色三角形和 绘制着色矩形。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | wingdi.h (包括 Windows.h) |
Library | Msimg32.lib |
DLL | Msimg32.dll |