| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 257 人关注过本帖
标题:[求助]关于在Picture中用鼠标绘图的问题!
收藏  订阅  推荐  打印 
kaishiuexi
Rank: 3Rank: 3
等级:中级会员
帖子:264
积分:2810
注册:2007-6-8
[求助]关于在Picture中用鼠标绘图的问题!

'定义Picture坐标系,绘制中轴线
Private Sub Command1_Click()
Dim Y%, X%
Me.Picture1.Scale (0, 100)-(200, 0)
Me.Picture1.Line (0, 50)-(200, 50), vbRed
End Sub

'按下鼠标获取点坐标
Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
End Sub
'画线
Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
Me.Picture1.Line -(X, Y), vbBlue
End If
End Sub

问题:
如何修改才能得到不连续的任意曲线?(即鼠标按下后再按下鼠标,在两点之间不会形成连线!)

多谢指教!

搜索更多相关主题的帖子: 鼠标  Picture  绘图  
2007-7-25 23:31
zrgong
Rank: 2
等级:注册会员
帖子:95
积分:1052
注册:2007-6-26

加个变量判断:
一开始设置:mblnIsDrawing=False

当鼠标左键点下时,设置mblnIsDrawing=True

鼠标放开时设置为:mblnIsDrawing=False

Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
if button=vbleftbutton then
mblnisdrawing=true
CurrentX = X
CurrentY = Y
endif
End Sub

Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If mblnisdrawing Then
Me.Picture1.Line -(X, Y), vbBlue
End If
End Sub

Private Sub picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
if button=vbleftbutton then
mblnisdrawing=false
endif
End Sub

2007-7-25 23:48
kaishiuexi
Rank: 3Rank: 3
等级:中级会员
帖子:264
积分:2810
注册:2007-6-8

首先感谢楼上兄弟的热情帮助!
按照上述方法问题仍然得不到解决,调试时得到的依然是连续曲线.


当白天又一次把黑夜按翻在床上的时候,太阳就出生了……
2007-7-26 09:00
zhulei1978
Rank: 12Rank: 12Rank: 12
等级:版主
威望:31
帖子:654
积分:8256
注册:2006-12-17

'定义Picture坐标系,绘制中轴线
Dim nm
Private Sub Command1_Click()
Dim Y%, X%
Me.Picture1.Scale (0, 100)-(200, 0)
Me.Picture1.Line (0, 50)-(200, 50), vbRed
End Sub

Private Sub Form_Load()
nm = 1
End Sub

'按下鼠标获取点坐标
Private Sub picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
End Sub
'画线
Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
If nm = 1 Then
Me.Picture1.Line (X, Y)-(X, Y), vbBlue
nm = 2
Else
Me.Picture1.Line -(X, Y), vbBlue
End If
End If
End Sub

Private Sub picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
nm = 1
End If
End Sub

[此贴子已经被作者于2007-7-26 18:32:11编辑过]

2007-7-26 15:27
kaishiuexi
Rank: 3Rank: 3
等级:中级会员
帖子:264
积分:2810
注册:2007-6-8

感谢^_^


当白天又一次把黑夜按翻在床上的时候,太阳就出生了……
2007-7-27 13:47
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.069355 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved