Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long ' Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
用上面两个api得到form1上一个控件的句柄是1182148,那么我用movetoex  和lineto如何在这个控件上画线?直接用吗?
还有,用api画线时如何设置线的颜色?

解决方案 »

  1.   

    你还需要获取该控件的HDC,用API   GetDC  可以获取DC
    如果你要画线,先使用moveto,将第一个点移动到起始位置
    然后用lineto,传入结束点,ok!
    要设置控件属性不是AutoRedraw,否则,你画出的线还没等看到,就被擦掉了
      

  2.   

    似乎有专门的函数设置DC的前景色,但是我忘记了
    不过可以用setpixel函数代替lineto
    setpixel(hdc,x,y,color)
    该函数就是在指定的dc上的(x,y)处画一个点,颜色自己指定
    你可以用循环语句封装一下该函数,使之能画线
      

  3.   

    谢谢您的回复.
    我还有两个问题: 1.用循环画圆形是否会慢啊
                    2.如何擦除所画的图形
                     控件 没有autoredraw属性.
      

  4.   

    同样用API,你可以用UpdataWindow函数来迫使窗口重画(MSDN里是这么说的,但我试了没效果)
    UpdataWindow 控件的句柄
    试试看吧
      

  5.   

    画圆形也有专门的函数,查阅MSDN就好
    同样需要设置DC的前景色
    或许还有其他的函数,我不知道而已,呵呵