Fermer une application

cs_machto Messages postés 179 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 18 février 2009 - 7 déc. 2007 à 14:09
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 7 déc. 2007 à 21:53
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

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
7 déc. 2007 à 14:14
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
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 déc. 2007 à 16:53
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
0
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 déc. 2007 à 16:55
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 déc. 2007 à 21:53
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




 
0
Rejoignez-nous