Metti questo codice in un modulo:
codice:
Option Explicit
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal HWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal HWnd As Long) As Long
Public Const MF_REMOVE = &H1000&
Public Const MF_ENABLED = &H0&
Public Const MF_INSERT = &H0&
Public Const SC_CLOSE = &HF060&
Public Const SC_MINIMIZE = &HF020&
Public Const SC_MAXIMIZE = &HF030&
Public Const SC_RESTORE = &HF120&
Public Enum MenuTypes
mnuClose = SC_CLOSE
mnuMinimize = SC_MINIMIZE
mnuMaximize = SC_MAXIMIZE
mnuRestore = SC_RESTORE
End Enum
Public Sub RemoveFormMenu(myForm As Form, TarghetMnu As MenuTypes)
' Disabilito il menu desiderato!
Call RemoveMenu(GetSystemMenu(myForm.HWnd, 0), TarghetMnu, MF_REMOVE)
' Ridisegno i menu!
DrawMenuBar myForm.HWnd
End Sub
Richiami nel Form_Load così:
RemoveFormMenu Me, SC_CLOSE
Ricorda che una volta disabilitato non lo puoi riabilitare, questo non perchè è impossibile, ma semplicemente perchè non ho ancora fatto la EnableFormMenu :bubu:
Ah, sta roba si potrebbe anche ottimizzare, che quando l'ho scritta ero un newbbio