Zobrazení nebo skrytí titulku okna za běhu aplikace

Postup:
V pojektu založte nový modul.

Do tohoto modulu vložte následující kód:
Public Const GWL_STYLE = (-16)
Public Const WS_OVERLAPPED = &H0&
Public Const WS_CAPTION = &HC00000
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
*Každá deklarace musí být celá na samotatném řádku

Public Sub SetTitle(frmForm As Form, visible As Boolean)

   Dim lngStyle As Long, lngFormDC As Long

   'Zjištění současného stylu titulku
  
lngStyle = GetWindowLong(frmForm.hwnd, GWL_STYLE)
   'Změna stavu
  
If visible Then
   
     lngStyle = lngStyle Or (WS_OVERLAPPED Or WS_CAPTION)
  
Else
     
lngStyle = lngStyle And Not (WS_OVERLAPPED Or WS_CAPTION)
  
End If
   'Aplikace změn
  
SetWindowLong frmForm.hwnd, GWL_STYLE, lngStyle
   'Překreslit okno
  
SetWindowPos frmForm.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOSIZE

End Sub

Funkci voláte následovně:
   Call SetTitle(frmMyForm, False)
   ...ke skrytí titlku, nebo
   Call SetTitle(frmMyForm, True)
   ...pro jeho zobrazení.

Zpět

Autor: The Bozena