如何移动窗体?
如何使一个窗体根据鼠标的移动而移动?
也就是说,假如我在窗体上放一个图片框,执行时当鼠标按住图片框拖动时,窗体也跟着动,怎么实现?
问题点数:20、回复次数:5Top
1 楼handsomge(汗衫)回复于 2002-04-14 15:13:19 得分 20
移动窗体:
这些在声明部分:
Dim IsMoving as bolean
Dim mX as single
Dim mY As single
这些在PictureBox的MouseDown事件:
IsMoving=True
mX=X
mY=Y
这些在PictureBox的MouseUp事件:
IsMoving=False
这些在PictureBox的Mousemove事件:
If IsMoving Then
me.left=me.left+ X - mX
me.Top=me.Top+ Y- mY
Exit Sub
End If
Top
2 楼gaoqi5037(高岐)回复于 2002-04-14 15:15:28 得分 0
Dim Oldx
Dim Oldy
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Oldx = X
Oldy = Y
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not Button = 1 Then Exit Sub
Left = Left - (Oldx - X)
Top = Top - (Oldy - Y)
End SubTop
3 楼lovever1999(风儿)回复于 2002-04-14 15:17:38 得分 0
Thank you very much!Top
4 楼ap800(丑小鸭)回复于 2002-04-14 15:21:12 得分 0
sendmessage wm_system,htcaption,0,0Top
5 楼HungryBoy(http://www.zhijian.net)回复于 2002-04-14 15:22:14 得分 0
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "User32" ()
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
Private Sub Form_Paint()
Me.Print "Click on the form, hold the mouse button and drag it"
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lngReturnValue As Long
If Button = 1 Then
Call ReleaseCapture
lngReturnValue = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
Top
6 楼laisiwei(.:RNPA:.刺猬)回复于 2002-04-14 15:42:31 得分 0
Dim IsMoving As Boolean
Dim mX As Single
Dim mY As Single
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
IsMoving = True
mX = X
mY = Y
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If IsMoving Then
Me.Move Me.Left + X - mX, Me.Top + Y - mY
End If
End Sub
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
IsMoving = False
End SubTop




