If the function fails, the return value is FALSE GradientFill Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H 返回FALSE
是不是To draw a shaded rectangle from [0,0] to [100,32],? 顶点的位置问题?
参考代码:Private Type TRIVERTEX x As Long y As Long Red As Integer 'Ushort value Green As Integer 'Ushort value Blue As Integer 'ushort value Alpha As Integer 'ushort End Type Private Type GRADIENT_RECT UpperLeft As Long 'In reality this is a UNSIGNED Long LowerRight As Long 'In reality this is a UNSIGNED Long End TypeConst GRADIENT_FILL_RECT_H As Long = &H0 'In this mode, two endpoints describe a rectangle. The rectangle is 'defined to have a constant color (specified by the TRIVERTEX structure) for the left and right edges. GDI interpolates 'the color from the top to bottom edge and fills the interior. Const GRADIENT_FILL_RECT_V As Long = &H1 'In this mode, two endpoints describe a rectangle. The rectangle ' is defined to have a constant color (specified by the TRIVERTEX structure) for the top and bottom edges. GDI interpolates ' the color from the top to bottom edge and fills the interior. Const GRADIENT_FILL_TRIANGLE As Long = &H2 'In this mode, an array of TRIVERTEX structures is passed to GDI 'along with a list of array indexes that describe separate triangles. GDI performs linear interpolation between triangle vertices 'and fills the interior. Drawing is done directly in 24- and 32-bpp modes. Dithering is performed in 16-, 8.4-, and 1-bpp mode. Const GRADIENT_FILL_OP_FLAG As Long = &HFFPrivate Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hdc As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long Private Function LongToUShort(Unsigned As Long) As Integer 'A small function to convert from long to unsigned short LongToUShort = CInt(Unsigned - &H10000) End Function Private Sub Form_Load() 'KPD-Team 1999 'URL: http://www.allapi.net/ 'E-Mail: [email protected] 'API uses pixels Me.ScaleMode = vbPixels End Sub Private Sub Form_Paint() Dim vert(1) As TRIVERTEX Dim gRect As GRADIENT_RECT 'from black With vert(0) .x = 0 .y = 0 .Red = 0& .Green = 0& '&HFF& '0& .Blue = 0& .Alpha = 0& End With 'to blue With vert(1) .x = Me.ScaleWidth .y = Me.ScaleHeight .Red = 0& .Green = 0& .Blue = LongToUShort(&HFF00&) .Alpha = 0& End With gRect.UpperLeft = 0 gRect.LowerRight = 1 GradientFillRect Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H End Sub
现在,www.myvc.net将为大家提供一个资源下载的空间!第一批将提供<三层结构源代码>
<开发文档模版>两项。
需要者可去以下网址留下email
http://www.myvc.net/dispbbs.asp?boardID=16&RootID=658&ID=658&page=1
我们也提供资源上传的空间,如果你愿意和大家分享你的资源,你可以和www.myvc.net联系
GradientFill Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H
返回FALSE
顶点的位置问题?
x As Long
y As Long
Red As Integer 'Ushort value
Green As Integer 'Ushort value
Blue As Integer 'ushort value
Alpha As Integer 'ushort
End Type
Private Type GRADIENT_RECT
UpperLeft As Long 'In reality this is a UNSIGNED Long
LowerRight As Long 'In reality this is a UNSIGNED Long
End TypeConst GRADIENT_FILL_RECT_H As Long = &H0 'In this mode, two endpoints describe a rectangle. The rectangle is
'defined to have a constant color (specified by the TRIVERTEX structure) for the left and right edges. GDI interpolates
'the color from the top to bottom edge and fills the interior.
Const GRADIENT_FILL_RECT_V As Long = &H1 'In this mode, two endpoints describe a rectangle. The rectangle
' is defined to have a constant color (specified by the TRIVERTEX structure) for the top and bottom edges. GDI interpolates
' the color from the top to bottom edge and fills the interior.
Const GRADIENT_FILL_TRIANGLE As Long = &H2 'In this mode, an array of TRIVERTEX structures is passed to GDI
'along with a list of array indexes that describe separate triangles. GDI performs linear interpolation between triangle vertices
'and fills the interior. Drawing is done directly in 24- and 32-bpp modes. Dithering is performed in 16-, 8.4-, and 1-bpp mode.
Const GRADIENT_FILL_OP_FLAG As Long = &HFFPrivate Declare Function GradientFillRect Lib "msimg32" Alias "GradientFill" (ByVal hdc As Long, pVertex As TRIVERTEX, ByVal dwNumVertex As Long, pMesh As GRADIENT_RECT, ByVal dwNumMesh As Long, ByVal dwMode As Long) As Long
Private Function LongToUShort(Unsigned As Long) As Integer
'A small function to convert from long to unsigned short
LongToUShort = CInt(Unsigned - &H10000)
End Function
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: [email protected]
'API uses pixels
Me.ScaleMode = vbPixels
End Sub
Private Sub Form_Paint()
Dim vert(1) As TRIVERTEX
Dim gRect As GRADIENT_RECT 'from black
With vert(0)
.x = 0
.y = 0
.Red = 0&
.Green = 0& '&HFF& '0&
.Blue = 0&
.Alpha = 0&
End With 'to blue
With vert(1)
.x = Me.ScaleWidth
.y = Me.ScaleHeight
.Red = 0&
.Green = 0&
.Blue = LongToUShort(&HFF00&)
.Alpha = 0&
End With gRect.UpperLeft = 0
gRect.LowerRight = 1 GradientFillRect Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H
End Sub