请教一个画线的问题

yoshubom 2006-07-13 05:06:30
例如我想画一条直线,鼠标第一次按下的时候确定起始点,然后这条线的另一端一直随着鼠标的移动而变化着,直到再次次按下左键的时候才真正使这条直线定型。如果按下右键则取消此次画线。请问用API可以实现吗?请高手讲讲方法,谢谢!
...全文
182 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
回复
相关推荐
发帖
API
创建于2007-09-28

1466

社区成员

VB API
申请成为版主
帖子事件
创建了帖子
2006-07-13 05:06
社区公告
暂无公告