Abolition du menu système

Contenu du snippet

Ces quelques lignes permettent de supprimer la petite croix en haut à droite, qui permet de fermer une fenête VB. En préparation, : La rallumer !

Source / Exemple :


Public Declare Function DrawMenuBar Lib "user32" (ByVal Hwnd As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal Hwnd As Long, ByVal bRevert As Long) As Long
Public Const MF_BYPOSITION = &H400
Public Const MF_REMOVE = &H1000
Public Function fctSupprimerFermerMenuSysteme(ByVal plngHwnd As Long) As Long
    Dim lngHmenu As Long
    Dim lngNombreElement As Long

    lngHmenu = GetSystemMenu(plngHwnd, 0)
    If lngHmenu Then
        lngNombreElement = GetMenuItemCount(lngHmenu)
    
        ' Suppression de l'élément Fermer
        Call RemoveMenu(lngHmenu, lngNombreElement - 1, MF_REMOVE Or MF_BYPOSITION)
        
        ' Suppression du séparateur
        Call RemoveMenu(lngHmenu, lngNombreElement - 2, MF_REMOVE Or MF_BYPOSITION)
    
        ' On redessine le menu
        Call DrawMenuBar(plngHwnd)
    End If
End Function

Conclusion :


J'aime pas les croix.... (Ni dieu,ni maître)

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.