画一个五角星,添充中间使用什么函数???

解决方案 »

  1.   

    画一个五角星用line就可以了,添充中间可用FloodFill一个画三角形的实例:一个按钮,一个picturebox代码:
    Private Type mypoint
        X As Long
        Y As Long
    End Type
    Private Declare Function FloodFill Lib "gdi32" _
    (ByVal hdc As Long, ByVal X As Long, ByVal Y As _
    Long, ByVal crColor As Long) As Long
    Private Sub drawsj(ByVal obj As Object, p1 As mypoint, p2 As mypoint, p3 As mypoint, ByVal mFillColor As Long, ByVal mLineColor As Long)'画三角形的函数
        Dim midx As Long
        Dim midy As Long
        obj.FillColor = mFillColor
        obj.FillStyle = 0 '一定要设,默认为1(透明),可以试着改成其它值(0-7)
        obj.ScaleMode = 3 '必须设定,只要使用api函数绘图,一般都要设定为3
        obj.AutoRedraw = True
        midx = (p1.X + p2.X + p3.X) \ 3
        midy = (p1.Y + p2.Y + p3.Y) \ 3
        obj.Line (p1.X, p1.Y)-(p2.X, p2.Y), mLineColor
        obj.Line (p2.X, p2.Y)-(p3.X, p3.Y), mLineColor
        obj.Line (p3.X, p3.Y)-(p1.X, p1.Y), mLineColor
        Dim i As Long
        i = FloodFill(obj.hdc, midx, midy, mLineColor)
        Debug.Print i
        obj.Refresh
    End SubPrivate Sub Command1_Click()
        Dim mp1 As mypoint, mp2 As mypoint, mp3 As mypoint
        mp1.X = 50
        mp1.Y = 50
        mp2.X = 30
        mp2.Y = 80
        mp3.X = 70
        mp3.Y = 80
        drawsj Me.Picture1, mp1, mp2, mp3, vbGreen, vbBlue
    End Sub