函数功能:该函数填充矩形和三角形结构。
1 2 |
BOOL GradientFill(HDC hdc, CONST PTRIVERTEX pVertex, DWORD dwNumVertex, CONST PVOID pMesh, DWORD dwNumMesh, DWORD dwMode); |
参数:
hdc:指向目标设备环境的句柄。
pVertex:指向TRIVERTEX结构数组的指针,该数组中的每项定义了三角形顶点。
dwNumVertex:顶点数目。
pMesh:三角形模式下的GRADIENT_TRIANGLE结构数组,或矩形模式下的GRADIENT_RECT结构数组。
dwNumMesh:参数pMesh中的成员数目(这些成员是三角形或矩形)。
dwMode:指定倾斜填充模式。该参数可以包含下列值,这些值的含义为:
GRADIENT_FILL_RECT_H:在该模式下,两个端点表示一个矩形。该矩形被定义成左右边界具有固定颜色(由TRIVERTEX结构指定)。GDI从上至下插入颜色,并填充内部区域。
GRADIENT_FILL_RECT_V:在该模式下,两个端点表示一个矩形。该矩形定义其顶部和底部边界的颜色为固定值(通过TRIVERTEX结构指定),GDI从顶至底部边界插入颜色,并填充内部区域。
GRADIENT_FILL_TRIANGLE:在该模式下,TRIVERTEX结构数组以及描述单个三角形的数组索引序列被传给GDI。GDI在三角形顶点之间进行线性插值,并填充内部区域。在24和32位/像素模式下,绘图是直接进行。在16、8、4和1位/像素模式中进行抖动处理。
返回值:如果函数执行成功,那么返回值为TRUE;如果函数执行失败,则返回值为FALSE。
Windows NT:若想获得更多错误信息,请调用GetLastError函数。
备注:若想在矩形区域中加入一些平滑的阴影(底纹),请用三角形的三个顶点调用GradientFill函数。CDI将进行线性插值,并填充矩形区域。在绘制矩形时可能使用两种阴影模式在水平模式中,矩形从左至右开始变暗,在垂直模式中则是从上至下进行。
GradientFill函数使用网眼法(mesh method)来表示要绘制对象的端点。所有传给GradientFill的顶点都存储在pVertex数组中。参数pMesh指定了这些顶点如何连接形成一个对象。当填充矩形时,pMesh指向一个GRADIENT_RECT结构数组。每一个GRADIENT_RECT结构指定了pVertex数组中两个顶点的索引值,这两个顶点形成一个矩形的左上角和右下角坐标。
在填充三角形情况下,pMesh指向的是GRADIENT_TRIANGLE结构数组。每一个GRADIENT_TRIANGLE结构指定了pVertex数组中的3个顶点,这三个顶点形成一个三角形。
为了简化硬件加速,无需要求该例程在三角形内部具有像素完善特性。
若想了解更多信息,参考平滑成影、绘制带阴影的三解和矩形等方面的内容。
速查:Windows NT:5.0及以上版本;Windows:98及以上版本;Windows CE:不支持;头文件:wingdi.h;库文件:作为一个资源包含在msimg32.dll中。