devxlogo

Dragging caption-less forms

Dragging caption-less forms

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.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist