放一个COMMANDBUTTON 到FORM上,然后测试以下代码:Dim xOffset As Single
Dim yOffSet As SinglePrivate Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Drag 1
xOffset = X
yOffSet = Y
End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - xOffset, Y - yOffSet
End Sub不过说实话,这种方法实在没有MOUSEMOVE好。
Dim yOffSet As SinglePrivate Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Command1.Drag 1
xOffset = X
yOffSet = Y
End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X - xOffset, Y - yOffSet
End Sub不过说实话,这种方法实在没有MOUSEMOVE好。
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Command1.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub