Désactiver le bouton fermer / x d'une feuille vb


Contenu du snippet


Source / Exemple :


'*****************************************
' Dans la partie déclaration du formulaire
'*****************************************
Private Const MF_BYPOSITION = &H400&

'Cette fonction API sert à prendre le menu qui apparaît lors du clic en haut à gauche du form (sous-menus "Restaurer", "Déplacer", "Réduire", "Fermer", ...)
Private Declare Function GetSystemMenu _
   Lib "user32" _
   (ByVal hwnd As Long, _ 
   ByVal bRevert As Long) As Long

'Cette fonction API sert à enlever un de ces sous-menus
Private Declare Function RemoveMenu _
   Lib "user32" (ByVal hMenu As Long, _ 
   ByVal nPosition As Long, _
   ByVal wFlags As Long) As Long

'Cette fonction API sert à connaître le nombre de sous-menus dans ce même menu
Private Declare Function GetMenuItemCount _
   Lib "user32" _ 
   (ByVal hMenu As Long) As Long

'*******************************************
' Dans la partie programmation du formulaire
'*******************************************
Public Sub DesactiverX(f_hwnd As Long)

Dim lSysMenu As Long
Dim lItemCount As Long
Dim lRet As Long

'Prend l'ID du menu
lSysMenu = GetSystemMenu(f_hwnd, False)

'Prend le nombre d'objet (sous-menus) du menu
lItemCount = GetMenuItemCount(lSysMenu)

'Suppression de sous-menu
lRet = RemoveMenu(lSysMenu, lItemCount - 1, MF_BYPOSITION)
lRet = RemoveMenu(lSysMenu, lItemCount - 2, MF_BYPOSITION)
lRet = RemoveMenu(lSysMenu, lItemCount - 3, MF_BYPOSITION)
lRet = RemoveMenu(lSysMenu, lItemCount - 4, MF_BYPOSITION)

End Sub

Conclusion :


En pratique :
DesactiverX Form1.hwnd
ou
Call DesactiverX(Form1.hwnd)

Dans le cas du formulaire actif :
DesactiverX Me.hwnd

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.