HERBERS Excel-Forum - die Dialoge

Thema: UserForm ohne Titel

Home
Die Titelleiste der UserForm kann ein- und ausgeblendet werden. Das Ausblenden verhindert eine Positionierung mit der Maus. UserForm ohne Titel
  • Initialisierung
    • Prozedur: UserForm_Initialize
    • Art: Ereignis
    • Modul: Klassenmodul der UserForm
    • Zweck: Initialisierung
    • Ablaufbeschreibung:
      • API-Funktion zum Ausschalten der Titelleiste aufrufen
    • Code:
      
      Private Sub UserForm_Initialize()
         Call fncHasUserformCaption(False)
      End Sub
      
  • Titel einschalten
    • Prozedur: cmdOn_Click
    • Art: Ereignis
    • Modul: Klassenmodul der UserForm
    • Zweck: UserForm-Titel einschalten
    • Ablaufbeschreibung:
      • API-Funktion zum Einschalten der Titelleiste aufrufen
    • Code:
      
      Private Sub cmdOn_Click()
         Call fncHasUserformCaption(True)
      End Sub
      
  • Titel ausschalten
    • Prozedur: cmdOff_Click
    • Art: Ereignis
    • Modul: Klassenmodul der UserForm
    • Zweck: UserForm-Titel ausschalten
    • Ablaufbeschreibung:
      • API-Funktion zum Ausschalten der Titelleiste aufrufen
    • Code:
      
      Private Sub cmdOff_Click()
         Call fncHasUserformCaption(False)
      End Sub
      
  • UserForm-Titelleiste ein/ausschalten
    • Prozedur: fncHasUserformCaption
    • Art: Function
    • Modul: Klassenmodul der UserForm
    • Zweck: UserForm-Titel ein- und ausschalten
    • Ohne Ablaufbeschreibung
    • Code:
      
      Private Type RECT
         Left As Long
         Top As Long
         Right As Long
         Bottom As Long
      End Type
      
      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 Function fncHasUserformCaption(bState As Boolean)
         Dim Userform_hWnd As Long
         Dim Userform_Style As Long
         Dim Userform_Rect As RECT
         Const GWL_STYLE = (-16)
         Const WS_CAPTION = &HC00000
         Userform_hWnd = FindWindow( _
            lpClassName:=IIf(Val(Application.Version) > 8, _
            "ThunderDFrame", "ThunderXFrame"), _
            lpWindowName:=Me.Caption)
         Userform_Style = GetWindowLong(hwnd:=Userform_hWnd, _
            nIndex:=GWL_STYLE)
         If bState = True Then
            Userform_Style = Userform_Style Or WS_CAPTION
         Else
            Userform_Style = Userform_Style And Not WS_CAPTION
         End If
         Call SetWindowLong(hwnd:=Userform_hWnd, nIndex:=GWL_STYLE, _
            dwNewLong:=Userform_Style)
         Call DrawMenuBar(hwnd:=Userform_hWnd)
      End Function