Public Property Get RuntimeFormBorderStyle() As FormBorderStyleConstants
RuntimeFormBorderStyle = oldVal
End Property
Public Property Let RuntimeFormBorderStyle(ByVal newVal As FormBorderStyleConstants)
If newVal <> oldVal Then
Select Case newVal
Case vbBSNone
WindowStyle(WS_BORDER) = False
WindowStyle(WS_CAPTION) = False
WindowStyle(WS_DLGFRAME) = False
WindowStyle(WS_EX_DLGMODALFRAME) = False
WindowStyle(WS_EX_TOOLWINDOW) = False
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = False
WindowStyle(WS_VSCROLL) = False
WindowStyle(WS_EX_WINDOWEDGE) = False
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_CONTROLPARENT) = False
WindowStyle(WS_EX_STATICEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = False
Case vbFixedDialog
WindowStyle(WS_BORDER) = True
WindowStyle(WS_CAPTION) = True
WindowStyle(WS_DLGFRAME) = True
WindowStyle(WS_EX_DLGMODALFRAME) = True
WindowStyle(WS_EX_TOOLWINDOW) = False
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = False
WindowStyle(WS_EX_WINDOWEDGE) = True
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_STATICEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = Me.ShowInTaskbar
Case vbFixedSingle
WindowStyle(WS_BORDER) = True
WindowStyle(WS_CAPTION) = True
WindowStyle(WS_DLGFRAME) = True
WindowStyle(WS_EX_DLGMODALFRAME) = False
WindowStyle(WS_EX_TOOLWINDOW) = False
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = True
WindowStyle(WS_EX_WINDOWEDGE) = True
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_STATICEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = Me.ShowInTaskbar
Case vbFixedToolWindow
WindowStyle(WS_BORDER) = True
WindowStyle(WS_CAPTION) = True
WindowStyle(WS_DLGFRAME) = True
WindowStyle(WS_EX_DLGMODALFRAME) = False
WindowStyle(WS_EX_TOOLWINDOW) = True
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = False
WindowStyle(WS_EX_WINDOWEDGE) = True
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_STATICEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = Me.ShowInTaskbar
Case vbSizable
WindowStyle(WS_BORDER) = True
WindowStyle(WS_CAPTION) = True
WindowStyle(WS_DLGFRAME) = True
WindowStyle(WS_EX_DLGMODALFRAME) = False
WindowStyle(WS_EX_TOOLWINDOW) = False
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = True
WindowStyle(WS_EX_WINDOWEDGE) = True
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = Me.ShowInTaskbar
Case vbSizableToolWindow
WindowStyle(WS_BORDER) = True
WindowStyle(WS_CAPTION) = True
WindowStyle(WS_DLGFRAME) = True
WindowStyle(WS_EX_DLGMODALFRAME) = False
WindowStyle(WS_EX_TOOLWINDOW) = True
WindowStyle(WS_MAXIMIZEBOX) = Me.MaxButton
WindowStyle(WS_MINIMIZEBOX) = Me.MinButton
WindowStyle(WS_SYSMENU) = Me.ControlBox
WindowStyle(WS_THICKFRAME) = False
WindowStyle(WS_EX_WINDOWEDGE) = True
WindowStyle(WS_EX_CLIENTEDGE) = False
WindowStyle(WS_EX_STATICEDGE) = False
WindowStyle(WS_EX_APPWINDOW) = Me.ShowInTaskbar
End Select
'\\ Refresh the window
Call SetWindowPos(Me.hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE + SWP_FRAMECHANGED)
Me.Refresh
oldVal = newVal
End If
End Property
Public Property Let WindowStyle(ByVal Index As enWindowStyles, ByVal newVal As Boolean)
Dim gwIndex As enGetWindowLong
Dim lCurStyle As Long
If Index = WS_EX_ACCEPTFILES Or Index = WS_EX_APPWINDOW _
Or Index = WS_EX_CLIENTEDGE Or Index = WS_EX_CONTEXTHELP _
Or Index = WS_EX_CONTROLPARENT Or Index = WS_EX_DLGMODALFRAME _
Or Index = WS_EX_LEFT Or Index = WS_EX_LEFTSCROLLBAR _
Or Index = WS_EX_LTRREADING Or Index = WS_EX_MDICHILD _
Or Index = WS_EX_NOPARENTNOTIFY Or Index = WS_EX_OVERLAPPEDWINDOW _
Or Index = WS_EX_PALETTEWINDOW Or Index = WS_EX_RIGHT _
Or Index = WS_EX_RIGHTSCROLLBAR Or Index = WS_EX_RTLREADING _
Or Index = WS_EX_STATICEDGE Or Index = WS_EX_TOOLWINDOW _
Or Index = WS_EX_TOPMOST Or Index = WS_EX_TRANSPARENT _
Or Index = WS_EX_WINDOWEDGE Then
'\ Extended window style
gwIndex = GWL_EXSTYLE
Else
'\ Standard window style
gwIndex = GWL_STYLE
End If
lCurStyle = GetWindowLong(Me.hwnd, gwIndex)
If newVal Then
lCurStyle = lCurStyle Or Index
Else
lCurStyle = lCurStyle And (Not Index)
End If
Call SetWindowLong(Me.hwnd, gwIndex, lCurStyle)
End Property
Public Property Get WindowStyle(ByVal Index As enWindowStyles) As Boolean
Dim gwIndex As enGetWindowLong
Dim lCurStyle As Long
If Index = WS_EX_ACCEPTFILES Or Index = WS_EX_APPWINDOW _
Or Index = WS_EX_CLIENTEDGE Or Index = WS_EX_CONTEXTHELP _
Or Index = WS_EX_CONTROLPARENT Or Index = WS_EX_DLGMODALFRAME _
Or Index = WS_EX_LEFT Or Index = WS_EX_LEFTSCROLLBAR _
Or Index = WS_EX_LTRREADING Or Index = WS_EX_MDICHILD _
Or Index = WS_EX_NOPARENTNOTIFY Or Index = WS_EX_OVERLAPPEDWINDOW _
Or Index = WS_EX_PALETTEWINDOW Or Index = WS_EX_RIGHT _
Or Index = WS_EX_RIGHTSCROLLBAR Or Index = WS_EX_RTLREADING _
Or Index = WS_EX_STATICEDGE Or Index = WS_EX_TOOLWINDOW _
Or Index = WS_EX_TOPMOST Or Index = WS_EX_TRANSPARENT _
Or Index = WS_EX_WINDOWEDGE Then
'\\ Extended window style
gwIndex = GWL_EXSTYLE
Else
'\\ Standard window style
gwIndex = GWL_STYLE
End If
lCurStyle = GetWindowLong(Me.hwnd, gwIndex)
WindowStyle = (lCurStyle Or Index) = lCurStyle
End Property