Form - ELIMINARE I 3 BOTTONI DAI FORM




VISUAL # Eliminare i tre tastini da un form MDI
VB4/32, VB5, VB6
Il codice che segue e' utile per eliminare i tasti chiusura, ingrandimento, e riduzione ad icona (ossia la x, il - ed i due quadratini) da un form MDI dal momento che tra le proprieta' del form non e' elencata la controlbox presente invece per tutti gli altri tipi di form.
Copiate il contenuto del Riquadro 1 in un modulo.
Riquadro 1
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 GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const GWL_STYLE = (-16)
Private Const WS_SYSMENU = &H80000

Con le due funzioni API che vedete e' possibile ottenere lo stile di una determinata finestra, modificarlo e quindi riassegnarlo alla finestra in questione.
Nell' evento MDIForm_Load:
Dim oldStyle As Long
Dim newStyle As Long
oldStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
newStyle = oldStyle Xor WS_MAXIMIZEBOX Xor WS_MINIMIZEBOX Xor WS_SYSMENU
Call SetWindowLong(Me.hwnd, GWL_STYLE, newStyle)

Se invece si scrive:
newStyle = oldStyle Xor WS_SYSMENU

si elimina lo stesso i tre tasti ma la finestra si massimizza e si ripristina facendo doppio click sulla barra del titolo.
Fare attenzione perche' in questa maniera non e' piu' possibile chiudere la finestra se non da codice.










( formeliminarei3bottonidaiform.html )- by Paolo Puglisi - Modifica del 17/12/2023