[astuce] messagebox qui n'arrete pas le processus courant

0/5 (24 avis)

Snippet vu 17 764 fois - Téléchargée 31 fois

Contenu du snippet

La commande MsgBox permet d'afficher un message à l'écran, mais elle arrête tous les processus qui étaient en cours.
Avec l'API MessageBox, on affiche la même chose, mais les processus qui étaient en cours continuent de tourner.

Code à tester avec 2 CommandButtons, un Timer et un Label.

Vraiment con comme source, mais pas aperçue sur le site ( ou alors noyée dans le flot des générateurs de MsgBox ). Si c'est le cas, désolé pour la pollution. Elle peut être supprimée.
Bref, c'est plutôt son utilisation bien particulière qui m'interpelle ici, car je pensais dur comme fer qu'on était obligé de créer sa propre MessageBox quand on ne voulait pas arrêter les processus.

Source / Exemple :


Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As _
Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As _
Long) As Long

Private Sub Command1_Click()
'   L'appel à la MsgBox traditionnelle arrête tous les processus qui
'   étaient en cours. Regardez donc le Timer dans Label1.
    MsgBox "Le Timer s'arrête"
End Sub

Private Sub Command2_Click()
'   L'appel à l'API MessageBox n'arrête pas les processus qui étaient
'   en cours. Regardez Label1 qui continue de défiler ...
    MessageBox Me.hwnd, "Le Timer ne s'arrête pas.", "API MsgBox", vbOKOnly + vbExclamation
End Sub

Private Sub Form_Load()
'   Initialisation du Timer
    Timer1.Interval = 100
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
'   Le label contient l'heure courante et est raffraichi tous les
'   Timer1.Interval [ms].
    Label1.Caption = Time
End Sub

A voir également

Ajouter un commentaire Commentaires
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
19 sept. 2005 à 15:16
la fonction msgbox n'arrete pas tous les processus qui tournent, seulement celui de ton application, n'est-ce pas
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
19 sept. 2005 à 15:20
oui, bien entendu. C'est un peu 'raccourci' la chose ;o)
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
19 sept. 2005 à 16:39
Bien bien...
Mikaels35 Messages postés 146 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 17 novembre 2009 1
19 sept. 2005 à 17:19
Excellent, j'en avais assez de ces MSGBOX qui bloquent le programme en cours!
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
19 sept. 2005 à 19:20
C'est du déjà vu, mais celui que j'ai vu avant utilisait un thread :O

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.