Change the extended window style
(small x/ToolWindow)


Option Explicit

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

'Get/SetWindowLong flags
Const GWL_EXSTYLE As Long = (-20)
Const GWL_STYLE As Long = (-16)

'Extended Window Styles
Const WS_EX_ACCEPTFILES As Long = &H10&
Const WS_EX_APPWINDOW As Long = &H40000
Const WS_EX_CLIENTEDGE As Long = &H200&
Const WS_EX_CONTEXTHELP As Long = &H400&
Const WS_EX_CONTROLPARENT As Long = &H10000
Const WS_EX_DLGMODALFRAME As Long = &H1&
Const WS_EX_LEFT As Long = &H0&
Const WS_EX_LEFTSCROLLBAR As Long = &H4000&
Const WS_EX_LTRREADING As Long = &H0&
Const WS_EX_MDICHILD As Long = &H40&
Const WS_EX_NOPARENTNOTIFY As Long = &H4&
Const WS_EX_RIGHT As Long = &H1000&
Const WS_EX_RIGHTSCROLLBAR As Long = &H0&
Const WS_EX_RTLREADING As Long = &H2000&
Const WS_EX_STATICEDGE As Long = &H20000
Const WS_EX_TOOLWINDOW As Long = &H80&
Const WS_EX_TOPMOST As Long = &H8&
Const WS_EX_TRANSPARENT As Long = &H20&
Const WS_EX_WINDOWEDGE As Long = &H100&
Const WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE Or WS_EX_CLIENTEDGE
Const WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE Or WS_EX_TOOLWINDOW Or WS_EX_TOPMOST

'#if(_WIN32_WINNT >= =&H0500)
Const WS_EX_LAYERED = &H80000
Const WS_EX_NOINHERITLAYOUT = &H100000      'Disable inheritence of mirroring by children
Const WS_EX_LAYOUTRTL = &H400000            'Right to left mirroring
Const WS_EX_COMPOSITED = &H2000000
Const WS_EX_NOACTIVATE = &H8000000

 

Private Sub UserForm_Initialize()

   
   ChangeWindowExStyle
  
End Sub

 

Sub ChangeWindowExStyle()
   Dim lRet As Long
   
   Dim hWnd As Long
   
   hWnd = GetUserFormHandle(Me)
   If hWnd = 0 Then
      MsgBox "Could not get handle to Userform!" & vbCrLf _
         & "Quitting ...", vbOKOnly Or vbCritical, "DisableExit"
      Exit Sub
   End If

   lRet = GetWindowLong(hWnd, GWL_EXSTYLE)
   If lRet <> 0 Then
      SetWindowLong hWnd, GWL_EXSTYLE, lRet Or WS_EX_TOOLWINDOW
   End If
End Sub

 

Function GetUserFormHandle(UF As UserForm) As Long
   Dim hWnd_UF As Long
   
   hWnd_UF = FindWindow("ThunderDFrame", UF.Caption)
   GetUserFormHandle = hWnd_UF
End Function


Again: Some style combinations are not meaningful.

And not all styles may be used in combination with any extended styles.

Go to top