API学习笔记 LineTo 与 MoveToEx 怎么连线画图

或许懂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

posted @ 2011-05-18 09:34  wangzx  阅读(749)  评论(0编辑  收藏  举报