Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB4/32,VB5,VB6
Expertise: Advanced
Jun 12, 1999

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 Long
Private 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 If
End 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.
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date