关于vb的API的问题,大虾,菜鸟都可以给点指点哦

ronaldo17 ronaldo17 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现在我用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
...全文
评论 4
收藏 已收藏
分享
返回顶部
ronaldo17
API 1,488 成员 23,270 内容