GradientFill Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H
    Me.Refresh
End Sub再试试

解决方案 »

  1.   

    www.myvc.net是一个编程技术论坛,为广大编程爱好者提供一个交流技术的空间!
    现在,www.myvc.net将为大家提供一个资源下载的空间!第一批将提供<三层结构源代码>
    <开发文档模版>两项。
    需要者可去以下网址留下email
    http://www.myvc.net/dispbbs.asp?boardID=16&RootID=658&ID=658&page=1
    我们也提供资源上传的空间,如果你愿意和大家分享你的资源,你可以和www.myvc.net联系
      

  2.   

    If the function fails, the return value is FALSE
    GradientFill Me.hdc, vert(0), 2, gRect, 1, GRADIENT_FILL_RECT_H
    返回FALSE
      

  3.   

    是不是To draw a shaded rectangle from [0,0] to [100,32],?
    顶点的位置问题?
      

  4.   

    参考代码: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