Fermer une application

Signaler
Messages postés
179
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
18 février 2009
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Bonjour,
comment inhiber la croix de fermeture (en haut à droite) pour ne pouvoir sortir que par le menu "Fin"? Ou encore quelle procédure faire pour que, en cliquant sur cette croix, le programme execute une sub interne (sauvegardes, etc....) Merci de votre aide

M@chto

4 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
Regarde l'événement QueryUnload d'un formulaire.
IL survient just'avant l'Unload et de permet d'appeler des procédures à toi, et même d'annuler le déchargement de la feuille grace au parametre Cancel.

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,
essaie ça:

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 'sub qui s'ouvre dès qu'on fait un unload
If UnloadMode = 0 Then 'Si on essaie de quitter en appuyant sur la croix en haut à droite
       Quit_Form.Show 1 'Demande confirmation de quitter, avec un form Quit_Form par exemple
    If Not Varquitter Then 'VarQuitter te donnera oui si tu confirmes, non sinon
        Cancel = True 'Quitte seulement si on confirme
    Else
        Unload Quit_Form 'Il faut pas oublier de fermer la form QuitForm que tu as utilisé
    End If
End If
End Sub
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ps: si tu veux juste faire des sauvegardes exécuter 2 3 choses avant de quitter et pas demander de confirmation, mets juste ton code dans le queryunload, comme le suggère jrivet
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonsoir,

ou encore du radical et dynamiquement :

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long



Private Sub Form_Activate()
  Dim lemenu As Long
    lemenu = GetSystemMenu(Me.hwnd, 0)
    DeleteMenu lemenu, &HF060&, &H0&
End Sub



Private Sub Command1_Click()
 Unload Me
End Sub