关于vb的API的问题,大虾,菜鸟都可以给点指点哦
现在我用API函数画多边形,程序如下,自认为没错,但画出来却是……(自己下来运行看看就知道了)怎么会事?请教!+感谢!不得齐解,求教,还有谁知道画五角星的API函数和具体算法,请给我一个!
Option Explicit
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
Private Declare Function MoveToEx Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
Private Declare Function Ellipse Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim flag As Boolean
Dim hdc1 As Long
Dim pos(0 To 10) As POINTAPI
Dim i As Integer
Dim nil As POINTAPI
Dim canvas As Long
Private Sub Form_Load()
flag = False
Me.ScaleMode = 3
Me.AutoRedraw = False
i = 0
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
flag = True
MoveToEx Me.hdc, X, Y, nil
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (flag) Then
pos(i).X = X
pos(i).Y = Y
If (i >= 3) Then
Polygon Me.hdc, pos(i), 4
Ellipse Me.hdc, X, Y, X + 5, Y + 5
i = 0
End If
If (i <= 3) Then
i = i + 1
Ellipse Me.hdc, X, Y, X + 5, Y + 5
flag = False
End If
End If
End Sub