请教一个画线的问题

yoshubom 2006-07-13 05:06:30
例如我想画一条直线,鼠标第一次按下的时候确定起始点,然后这条线的另一端一直随着鼠标的移动而变化着,直到再次次按下左键的时候才真正使这条直线定型。如果按下右键则取消此次画线。请问用API可以实现吗?请高手讲讲方法,谢谢!
...全文
212 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoshubom 2006-07-14
  • 打赏
  • 举报
回复
多谢province_(雍昊)的热心回复,但是我的这个项目一定要用API,不然的话会被其他东西挡住的。
province_ 2006-07-13
  • 打赏
  • 举报
回复
Dim x1 As Long, y1 As Long

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then

If Line1.Visible = False Then
x1 = X
y1 = Y
Line1.x1 = x1
Line1.y1 = y1
Line1.Visible = True
Else
Line1.Visible = False
DoEvents
Line (x1, y1)-(X, Y), vbBlack
End If

Else
Line1.Visible = False
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Line1.Visible = True Then
Line1.X2 = X
Line1.Y2 = Y
End If
End Sub
province_ 2006-07-13
  • 打赏
  • 举报
回复
漏了一条
按下左键的时候判断LINE的可见性,若可见,则先使之隐藏,但其X1Y1、X2Y2用于真正画一条线。
province_ 2006-07-13
  • 打赏
  • 举报
回复
Dim x1 As Long, y1 As Long

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
x1 = X
y1 = Y
Line1.x1 = x1
Line1.y1 = y1
Line1.Visible = True
Else
Line1.Visible = False
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Line1.Visible = True Then
Line1.X2 = X
Line1.Y2 = Y
End If
End Sub
province_ 2006-07-13
  • 打赏
  • 举报
回复
不需要API,只要VB的LINE控件就可以了。颜色随便定,画笔用XOR。其他的不说你也会了。
yoshubom 2006-07-13
  • 打赏
  • 举报
回复
我是说鼠标移动的过程中也出现直线,但是这条线是活动,直到再次按鼠标的时候才确定一条固定的直线。
303afei 2006-07-13
  • 打赏
  • 举报
回复
Movetoex
Lineto

1,488

社区成员

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

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