• 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

  • 相关阅读:
    POJ3186(KB12-O DP)
    POJ1661(KB12-M DP)
    POJ2533(KB12-N LIS)
    POJ1458(KB12-L LCS)
    HDU1160(KB12-J DP)
    HDU1260(KB12-H DP)
    HDU1114(KB12-F DP)
    HDU1024(DP)
    HDU1074(KB12-D 状态压缩dp)
    天梯赛2016-L2
  • 原文地址:https://www.cnblogs.com/kingzx/p/2049586.html
Copyright © 2020-2023  润新知