如何用鼠标拖拽,picture控件???
例如:音量控制 问题点数:20、回复次数:11Top
1 楼sticker(了了)回复于 2001-12-21 20:47:45 得分 0
应该有个控件可以用的,如果不用的话,把一个可以设drag的东西开成ture,然后控制他的left和top值,比如让他的left一直等于一个固定值,然后另一个变量等于他的top值(要必要的处理)
这样应该可以用了吧。Top
2 楼LowBird(我是大菜鸟)回复于 2001-12-21 20:56:19 得分 0
我试试Top
3 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:07:09 得分 0
不行Top
4 楼sticker(了了)回复于 2001-12-21 21:12:57 得分 0
你是怎么让他的left值固定的?我不太记得有没有什么事件可以用来驱动了,如果没有的话,花点效率,用个interval很小(100)的记时器好了,在timer事件中加入控制代码。Top
5 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:18:50 得分 0
就是用的timeTop
6 楼sticker(了了)回复于 2001-12-21 21:25:46 得分 5
那有招更累的方法,把这个用来drag的东西的enabled设false,不用他的drag了,换成检测form_mousedown事件,检测mouse是否在东西里面,如果是的话,另一个全局变量=ture,然后,form_mousemove事件中,如果上个全局变量=ture,则东西.top=鼠标的y值。然后,在form_mouseup事件,如果全局变量=ture则全局变量=false.
很麻烦,不知行不行。Top
7 楼LowBird(我是大菜鸟)回复于 2001-12-21 21:33:01 得分 0
Private Sub picHk_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'picHk.BackColor = vbRed
'DragPd = True
End Sub
Private Sub picHk_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'If DragPd = True Then
' picHk.Move (X - 10), 5520, 200, 200
' picHk.Refresh
'End If
End Sub
Private Sub picHk_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'picHk.BackColor = vbGreen
'DragPd = False
End Sub
实验代码,不好使!!!Top
8 楼LowBird(我是大菜鸟)回复于 2001-12-21 22:45:57 得分 0
没有别的方法了吗??Top
9 楼LowBird(我是大菜鸟)回复于 2001-12-22 02:20:58 得分 0
不会吧!!很难吗??Top
10 楼lty(傻猫)回复于 2001-12-22 03:16:30 得分 15
下面的方法实际上vb的开发环境就是这样实现拖动的.
dim 鼠标键按下 as boolean
dim OldX as single
dim OldY as single
Sh是图片框
Private Sub sh_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Shape1.Visible = True
鼠标键按下 = True
OldX = X
OldY = Y
Shape2.left = Sh.left
Shape2.top = Sh.top
Shape2.Width = Sh.Width
Shape2.Height = Sh.Height
End Sub
Private Sub sh_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
If 鼠标键按下 Then
Shape2.left = Shape2.left + X - OldX
Shape2.top = Shape2.top + Y - OldY
Shape1.Width = Shape2.left
Shape1.Height = Shape2.top
OldX = X
OldY = Y
End If
End Sub
Private Sub sh_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Sh.top = Shape2.top
Sh.left = Shape2.left
鼠标键按下 = False
Shape2.Visible = False
End Sub
Top
11 楼LowBird(我是大菜鸟)回复于 2001-12-22 04:01:22 得分 0
好的,谢谢了,可以了Top




