Private Declare Function ReleaseCapture Lib "user32" () As Long
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 Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1Public Sub Drag_me(Object_Name As Object)
ReleaseCapture
SendMessage Object_Name.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub如果想托动窗体则在窗口的mouse_down事件中写
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Drag_me Me
End Sub
如果想拖动一个按钮,则:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Drag_me Command1
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End SubPrivate Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Label1.Drag 1
End Sub
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move (X - Source.Width \ 2), (Y - Source.Height \ 2)
End SubPrivate Sub Form_Load()
Command1.DragMode = 1
End Sub