Option Explicit
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 Long) As Long
Const HTCAPTION = 2
Const WM_NCLBUTTONDOWN = &HA1
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,x As Single,Y As Single)
If Button = 1 Then ' Checking for Left Button only
Dim ReturnVal As Long
x = ReleaseCapture()
ReturnVal = SendMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,0)
End If
End Sub
Private Sub Form_MouseDown(Button As Integer,X As Single,Y As Single) If Button And vbLeftButton Then mX = X: mY = Y End IfEnd Sub Private Sub Form_MouseMove(Button As Integer,Y As Single) If Button And vbLeftButton Then Me.Move Me.Left - mX + X,Me.Top - mY + Y End IfEnd Sub