Salut,
En effet les manipulation vb ne sont pas les mêmes que ceux en vba. Le problème c'est que seul la position est défini
Option Explicit
Public Const MF_BYPOSITION = &H400&
Public Const SC_CLOSE = 6
Public Const MF_ENABLED = &H0&
Public Const MF_GRAYED = &H1&
Public Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Public Sub DisabledSystemMenu(hWnd As Long, RemoveClose As Boolean, pMenu As Long)
Dim hMenu As Long
Dim ireturn As Long
hMenu = GetSystemMenu(hWnd, False)
If RemoveClose Then
EnableMenuItem hMenu, pMenu, MF_GRAYED Or MF_BYPOSITION
Else
EnableMenuItem hMenu, pMenu, MF_ENABLED Or MF_BYPOSITION
End If
End Sub
Appelle la procedure comme ceci
DisabledSystemMenu MyHandleDeForm, True, SC_CLOSE
MyHandleDeForm étant l'Hwnd du formulaire biensûr
Cramsoturf le VBien en quête de nouveau programme :big)