Lock userform position

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Is it possible to lock the position of a userform to prevent users from dragging it around the screen?
 
you can display it without the caption bar and then it can't be moved.
Download Formfun.zip from Stephen Bullen's site and it demonstrates many
options you can do with a userform. Code is accessible.

http://www.BMSLtd.ie/Excel.Default.htm

--
Regards,
Tom Ogilvy

Newbie said:
Is it possible to lock the position of a userform to prevent users from
dragging it around the screen?
 
Hi Newbie,
You can test:
Private Declare Function FindWindow& Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hwnd&, ByVal bRevert&)
Private Declare Function DeleteMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 50: Me.Top = 90
Dim hwnd&, hSysMenu&
hwnd = FindWindow(vbNullString, Me.Caption)
hSysMenu = GetSystemMenu(hwnd, False)
DeleteMenu hSysMenu, &HF010&, &H0&
End Sub

MP

Newbie said:
Is it possible to lock the position of a userform to prevent users from dragging
it around the screen?
 
Re Newbie,
Or if you prefer (to envisage a button to close the userform):
Private Declare Function FindWindowA& Lib "User32" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLongA& Lib "User32" _
(ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)

' Necessary button to close userform
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 50: Me.Top = 90
Dim hWnd As Long, exLong As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, &H84400080
End Sub

MP


Newbie said:
Is it possible to lock the position of a userform to prevent users from dragging
it around the screen?
 
Back
Top