Désactiver la croix en haut à droite

Signaler
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
bonjour à tous!

j'aimerais désactiver la croix en haut à droite de tous mes formulaires, sous VB editor, comment dois-je faire?

ou alors, est-ce possible de déclencher un événement (style afficher le form précédent, si on est dans un menu en cascade de form) lorsque l'on clique sur la croix?

merci de votre aide!

Daydayerement Vôtre

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Il faut simplement supprimer le menu système SC_CLOSE :



Dans la partie déclaration d'un module :



'fonction permettant de récupèrer un handle sur le menu système

Private Declare Function GetSystemMenu Lib "user32" ( _

ByVal hwnd As Long, _

ByVal bRevert As Long) As Long



'fonction permettant de supprimer un menu

Private Declare Function DeleteMenu Lib "user32" ( _

ByVal hMenu As Long, _

ByVal nPosition As Long, _

ByVal wFlags As Long) As Long



'déclaration des constantes privées à l'objet

Private Const MF_BYCOMMAND = &H0 'permet de trouver un menu

Private Const SC_CLOSE = &HF060 'menu de fermeture



Public Sub DisabledCloseButton(ByVal lHWndForm As Long)



'======================================================================

'Sub : DisabledCloseButton

'Date : 26/01/2005

'Auteur : DarK Sidious

'But : Permet de désactiver le bouton fermer de la feuille spécifiée

'======================================================================



'déclaration des variables privées

Dim lMenu As Long 'stocke le handle du menu système



'on supprime le menu fermer du menu système pour
désactiver la fermeture de la feuille par les moyens classiques

Let lMenu = GetSystemMenu(lHWndForm, 0)

Call DeleteMenu(lMenu, SC_CLOSE, MF_BYCOMMAND)



End Sub



Ensuite, pour l'appliquer à une feuille :

Call DisabledCloseButton(Form1.hWnd)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

salut, l'evenement Queryunload fonctionne très bien

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Oui mais cela ne te désactive pas le bouton...

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

bien sur mais il voulait eventuellement avoir la possibilité de prendre la form précédente.

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
0
Messages postés
201
Date d'inscription
mercredi 1 décembre 2004
Statut
Membre
Dernière intervention
13 août 2005

merci de vos réponses. mais pour faire plus simple, je veux simplement désactiver la croix et ne pas avoir la possibilité de récupérer le form... juste un truc pour désactiver. ça existe en simple?

merki!

Daydayerement Vôtre
0
Messages postés
1016
Date d'inscription
samedi 22 mars 2003
Statut
Membre
Dernière intervention
24 juin 2008

- Désactiver c'est la méthode de Dark

- Invalider c'est :
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
End Sub

Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
0
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
Oui pour désactiver, utilise mon code, tu verra, tu n'a rien à faire,
juste copier/coller le code dans un module, et appeller la fonction
comme je l'ai dit.



Sinon, pour liquide : lorsque tu utilise le QueryUnload, il faut faire
attention au UnloadMode : si tu n'en tiens pas compte, mais si tu veux
fermer la feuille par le code, ca ne marchera jamais ! Le plus simple
reste de faire :



If UnloadMode = 0 Then



Cancel = True



End if



comme ca, ca ne désactive la fermeture de la fenêtre que lorsque
l'utilisateur clique sur le bouton de fermeture, mais le Unload(Form1)
marche toujours ;)

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0