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í.
|