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

ronaldo17 2002-08-01 02:06:46
现在我用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
...全文
28 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ronaldo17 2002-08-02
  • 打赏
  • 举报
回复
快帮忙呀,要不该贴沉下去,我就永远得不到解啦
ronaldo17 2002-08-02
  • 打赏
  • 举报
回复
怎么没人答复呀,帮帮忙塞,献献爱心塞,急哦,在线守侯
ronaldo17 2002-08-02
  • 打赏
  • 举报
回复
哦,对不起,我向你们请教的错误原程序没粘上,才发现,从粘。请各位指教哈
Option Explicit
Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) 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
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
pos(i).X = X
pos(i).Y = Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (flag) Then
Polygon Me.hdc, pos(i), 4
Ellipse Me.hdc, X, Y, X + 5, Y + 5
End If
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
Polygon Me.hdc, pos(i), 4
Ellipse Me.hdc, X, Y, X + 5, Y + 5
flag = False
End If
End If
End Sub
zyl910 2002-08-01
  • 打赏
  • 举报
回复
http://www.21code.com/codebase/?pos=down&id=2064
源码类型: VisualBasic源码-图形方面
上传时间: 2002-03-31
下载次数: 162
源码大小: 8 KB 源码评价:

源码简介:

教你画任意角度倾斜的五角星图案

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧