cs_machto
Messages postés179Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention18 février 2009
-
7 déc. 2007 à 14:09
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 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
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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)
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 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
mstarsup5
Messages postés527Date d'inscriptionlundi 15 octobre 2007StatutMembreDernière intervention10 octobre 20131 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
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 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