或许懂API的人觉得这个功能确实太简单了完全不值一提,但是正是这个原因太简单了很多会的人不愿意说,而初识API的人又不会。这就出现了一个小BUG。所以我写博客的原因是为了方便和我一样的菜鸟,大鸟们可以直接无视。
我有一个疑惑是为什么博客园里面不开VB的专栏,难道正如有点人说的VB被淘汰了????但为什么还是有那么多人在用呢??
我要求的功能是这样的,第一条线的终点的坐标就是第二条线起点的坐标,貌似就是传说中的连线吗?昨天初识API搞的我晕头转向,还好最后还是解决了。
废话不多说贴代码:
,我是在窗口中写的API 所以定义为Private
如果和我一样不是很明白API的小菜们,推荐大家去http://tieba.baidu.com/f?kz=626339029 看下。那里面讲的确实有意思。
Option Explicit
Private Declare Function MoveToEx Lib "gdi32.dll " (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, lpPoint As POINTAPI) As Long
Private Declare Function LineTo Lib "gdi32.dll " (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Type POINTAPI
X As Long
Y As Long
End Type
Dim tempIsDb As Integer
'这是我自定义的一个函数 其中注释快中的代码是我写死了的,用来测试效果。后面的for循环是我写的动态连线。大家可以把循环去掉
Private Sub Draw()
Dim lpPoint As POINTAPI
'设置起始点 (10,10)
MoveToEx Picture1.hdc, 10, 10, lpPoint
' 画一根在坐标(110,110)长度为100的直线
' LineTo Picture1.hdc, 110, 110
'
' LineTo Picture1.hdc, 210, 110
'
'' LineTo Picture1.hdc, 210, 30
Dim i As Integer
For i = 0 To arrNum - 1
LineTo Picture1.hdc, dataArr(i).X, dataArr(i).Y
Next
End Sub
Private Sub Form_Load()
Call Draw
End Sub