Enlever le bouton fermer d'un formulaire

Résolu
johann36 Messages postés 132 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017 - 5 oct. 2009 à 10:09
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 - 4 nov. 2009 à 01:36
Bonjour à tous,

J'ai cherché sur différent site le moyen d'enlever ou désactiver le bouton "Fermer" d'un formulaire et malgré les exemples et explications cela ne fonctionne toujours pas.

Voici le contenu du code que j'ai mis (je l'ai récupéré sur le site Désactiver la X d'un formulaire.

Ça c'est que j'ai mis dans un module
Private Const MF_BYPOSITION = &H400
Private Const MF_REMOVE = &H1000

Public Declare Function DrawMenuBar Lib "user32" _
      (ByVal hwnd 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 Declare Function RemoveMenu Lib "user32" _
      (ByVal hMenu As Long, _
       ByVal nPosition As Long, _
       ByVal wFlags As Long) As Long


Et ça c'est ce que j'ai mis au chargement du formulaire
   
   Dim hMenu As Long
   Dim menuItemCount As Long

  'Obtain the handle to the form's system menu
   hMenu = GetSystemMenu(Me.handle, 0)
  
   If hMenu Then
      
     'Obtain the number of items in the menu
      menuItemCount = GetMenuItemCount(hMenu)
    
     'Remove the system menu Close menu item.
     'The menu item is 0-based, so the last
     'item on the menu is menuItemCount - 1
      Call RemoveMenu(hMenu, menuItemCount - 1, _
                      MF_REMOVE Or MF_BYPOSITION)
   
     'Remove the system menu separator line
      Call RemoveMenu(hMenu, menuItemCount - 2, _
                      MF_REMOVE Or MF_BYPOSITION)
    
     'Force a redraw of the menu. This
     'refreshes the titlebar, dimming the X
      Call DrawMenuBar(Me.handle)

   End If


Si vous pouviez m'aider car là je ne comprend pas pourquoi il ne se passe rien.

Merci d'avance à tous.

7 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
5 oct. 2009 à 13:40
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 oct. 2009 à 11:12
me.handle

tu es donc en VB.NET

tu dois donc coder en .Net et non en VB6...

Long => Integer


public declare function drawmenubar lib "user32" _
(byval hwnd as Integer) as Integer

public declare function getmenuitemcount lib "user32" _
(byval hmenu as Integer) as Integer
etc.


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 oct. 2009 à 11:18
testé en .Net, ca fonctionne nickel...

    Private Const MF_BYPOSITION = &H400
    Private Const MF_REMOVE = &H1000

    Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Integer) As Integer
    Public Declare Function GetMenuItemCount Lib "user32" (ByVal hmenu As Integer) As Integer
    Public Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal brevert As Integer) As Integer
    Public Declare Function RemoveMenu Lib "user32" (ByVal hmenu As Integer, ByVal nposition As Integer, ByVal wflags As Integer) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim hMenu As Integer
        Dim nCount As Integer

        hMenu = GetSystemMenu(Me.Handle, 0)
        If hMenu Then
            nCount = GetMenuItemCount(hMenu)
            RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
            RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)
            DrawMenuBar(Me.Handle)
        End If
    End Sub



Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
johann36 Messages postés 132 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 9 mai 2017
5 oct. 2009 à 16:33
Merci pour vos réponses, j'ai opté pour celle de "PCPT" qui est plus simple à mettre en oeuvre.

En tout cas un grand merci à vous 2
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
5 oct. 2009 à 16:35
plus simple, et surtout plus .NET ^^

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
5 oct. 2009 à 16:47
je n'ai fait que donner le lien, c'est sebmafate qu'il faudrait remercier

ps : n'oublie pas de valider la ou les bonnes réponses pour fermer le sujet

[hr]
0
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
4 nov. 2009 à 01:36
Bonjour

Juste pour savoir si il y a moyen de supprimer les autres options du menu en question ? Réduire, Restaurer, Agrandir etc ?

Et comment après avoir supprimer le menu en place mettre le mien ?

D'avance Merci

La solution de PCPT fonctionne aussi sous VB 2008

007bidouille
0
Rejoignez-nous