Probleme de boite de dialogue

Signaler
Messages postés
10
Date d'inscription
mardi 17 juin 2003
Statut
Membre
Dernière intervention
31 octobre 2009
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
bonjour,

j'ai un probleme. Je voudrais afficher une boite de dialogue a l'ecran, avec un message veuillez patienter pendant 3 secondes, et ensuite la faire disparaitre, pour afficher ensuite la boite de dialogue principal. Depuis ce matin, j'essaye, mais rien a faire, j'ai mis
Sleep(3000) dans différent message WM (WM_ACTIVATE, WM_SHOWWINDOW, WM_CREATE, ...) mais toujours rien.

Apres 3 secondes d'attente la boite de dialogue "Veuillez patienter" se dessine a l'ecran, mais pas avant.

Pouvez vous m'aider.

merci

serge.

bob

4 réponses

Messages postés
10
Date d'inscription
mardi 17 juin 2003
Statut
Membre
Dernière intervention
31 octobre 2009

j'ai oublie d'ajouter, que pendant que j'ouvre cette fenetre, j'initialise un gsm par le biais de la rs232, qui dure 3 secondes pour verifier les infos du gsm.Merci d'avance.

bob
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Sleep() bloque le thread qui l'appelle.

ciao...
BruNews, MVP VC++
Messages postés
10
Date d'inscription
mardi 17 juin 2003
Statut
Membre
Dernière intervention
31 octobre 2009

bonjour, bruNews,

je comprends mais mon problèmes et que meme si j'enleve le Sleep(), ca ne marche pas.

mon but est de faire apparaitre ma boite de dialogue a l'ecran ("Veuillez patienter"), ensuite d'initialiser les données vers le port série; et quand, c'est terminé, fermer la boite de dialogue, pour lancer la boite principal.

et c'est cela malheuresement, que je n'arrive pas a faire.

serge.

bob
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
ta fenetre mère:

case WM_CREATE ou WM_INITDIALOG:
// toute initialisation graphique ici
DialogBoxParam(....); pour dialog d'attente, ainsi on est bloqué sur celle ci
return 0; // ou 1 si dialog

dans dialog de présentation:
case WM_INITDIALOG:
ShowWindow(hdlg, SW_SHOW); // on affiche
hprepare = CreateThread(.....); init ton gsm tant que non fini
WaitForSingleObject(hprepare, INFINITE);
CloseHandle(hprepare);
EndDialog(hdlg, 0);

ciao...
BruNews, MVP VC++