Drag userform around the screen without a TitleBar

Adroitking

Board Regular
Joined
Aug 12, 2004
Messages
122
I have made a very pretty userform in which I stripped off the title bar. I replaced the titlebar with an Image pasted to the userform. Is it possible for me to click on the Image and drag the userform around?
 

Some videos you may like

Excel Facts

How to change case of text in Excel?
Use =UPPER() for upper case, =LOWER() for lower case, and =PROPER() for proper case. PROPER won't capitalize second c in Mccartney

Adroitking

Board Regular
Joined
Aug 12, 2004
Messages
122
Go I figured it out...Thanks
Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 
Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long 
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 Function ReleaseCapture Lib "user32" () As Long 
Private Const GWL_STYLE As Long = (-16) 
Private wHandle As Long 


Private Sub CommandButton1_Click() 
Unload Me 
End Sub 


Private Sub UserForm_Initialize() 
    Dim frm As Long, frmstyle As Long 
    If Val(Application.Version) >= 9 Then 
        wHandle = FindWindow("ThunderDFrame", Me.Caption) 
    Else 
        wHandle = FindWindow("ThunderXFrame", Me.Caption) 
    End If 
    If wHandle = 0 Then Exit Sub 
    frm = GetWindowLong(wHandle, GWL_STYLE) 
    frm = frm Or &HC00000 
    SetWindowLong wHandle, -16, frmstyle 
    DrawMenuBar wHandle 
End Sub 


Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 
   'Code to drag the form 

   If wHandle = 0 Then Exit Sub 
   If Button = 1 Then 
       ReleaseCapture 
       SendMessage wHandle, &HA1, 2, 0 
   End If 
End Sub
 

Watch MrExcel Video

Forum statistics

Threads
1,118,820
Messages
5,574,509
Members
412,599
Latest member
Schu94
Top