描述
GradientFill函数填充矩形和三角形结构。
C++ 语法
BOOL GradientFill( __in HDC hdc, __in PTRIVERTEX pVertex, __in ULONG dwNumVertex, __in PVOID pMesh, __in ULONG dwNumMesh, __in ULONG dwMode ); |
PowerBASIC 语法
BOOL GradientFill( BYVAL hdc AS DWORD, _ BYREF pVertex AS TRIVERTEX, _ BYVAL dwNumVertex AS DWORD, _ BYREF pMesh AS ANY, _ BYVAL dwNumMesh AS DWORD, _ BYVAL dwMode AS DWORD _ ) AS LONG |
参数
hdc
[in]处理目标设备上下文。
pVertex
[in]指向每个定义三角形顶点的TRIVERTEX结构数组的指针。
dwNumVertex
[in]pVertex中的顶点数
pMesh
[in]三角形模式下的GRADIENT_TRIANGLE结构数组,或矩形模式下的GRADIENT_RECT结构数组。
dwNumMesh
[in]Pmesh中的元素数量(三角形或矩形)。
dwMode
[in]指定渐变填充模式。此参数可以是以下值之一。
值 |
含义 |
GRADIENT_FILL_RECT_H |
在这种模式下,两个端点描述一个矩形。矩形被定义为具有用于左边缘和右边缘的恒定颜色(由TRIVERTEX结构指定)。GDI内插从左到右的颜色,并填充内部。 |
GRADIENT_FILL_RECT_V |
在这种模式下,两个端点描述一个矩形。矩形被定义为具有顶部和底部边缘的恒定颜色(由TRIVERTEX结构指定)。GDI从顶部到底部边缘插入颜色,并填充内部。 |
GRADIENT_FILL_TRIANGLE |
在这种模式下,TRIVERTEX结构的数组与描述单独三角形的数组索引列表一起传递给GDI。GDI在三角形顶点之间执行线性插值,并填充内部。图形直接以24和32-bpp模式完成。在16,8,4和1-bpp模式下进行抖动。 |
返回值
如果函数成功,返回值为TRUE。
如果函数失败,返回值为FALSE。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.
备注
要将平滑阴影添加到三角形,请使用三个三角形端点调用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.
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)