The standard way to move a captionless form is to execute some tricky code from within the MouseDown event procedure. More advanced VB developers can reach the same result by setting up a subclassing procedure to fool the form into believing that the user had clicked on its title bar.
There’s a solution halfway, though, that exploits the WM_NCBUTTONDOWN message but doesn’t resort to subclassing:
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal _ hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As LongPrivate Declare Sub ReleaseCapture Lib "User32" ()Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, _ Y As Single) Const WM_NCLBUTTONDOWN = &HA1 Const HTCAPTION = 2 If Button = 1 Then ReleaseCapture SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0& End IfEnd Sub
This trick only works if the mouse is clicked on the form, so that the user’s action can be trapped in the form’s MouseDown event. If you want to drag the form wherever the mouse is clicked you must use a subclassing technique.