勇芳软件工作室.汉化:  Bitmaps > Bitmap Functions >

GradientFill

Previous pageReturn to chapter overviewNext page

描述

 

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将线性内插并填充三角形。以下是阴影三角形的绘图输出:

 

clip0001

 

要向矩形添加平滑阴影,请使用矩形的左上和右下坐标调用GradientFill.绘制矩形时使用两种阴影模式。在水平模式下,矩形从左到右是阴影的。在垂直模式下,矩形从上到下是阴影的。这是两个阴影矩形的绘图输出 - 一个在水平模式,另一个在垂直模式:

 

clip0002

 

clip0003

 

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)