Rafraichir une fenêtre [Résolu]

Messages postés
4
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
17 mai 2005
- - Dernière réponse : El Rabou
Messages postés
4
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
17 mai 2005
- 13 mai 2005 à 11:20
Bonjour a tous.
Voilà j'ai fait une appli MFC qui comprend une progress bar mise a jour avec StepIt( ) en suivant une boucle qui gère un envoi de données sur un port série.
La progress bar tourne bien mais si mon appli passe en arrière plan pendant le transfert elle est figée quand elle revient au premier, la fenêtre est marquée comme occupé (sablier windows) et ne répond plus, alors que la boucle tourne toujours correctement (l'envoi de mes données me le confirme).

je voudrais trouver un moyen de remettre ma progress bar a jour lorsque ma fenêtre est active. j'ai voulu le faire avec l'event WM_ACTIVATE en faisant un UpdateWindow( ) sur les messages WA_ACTIVE et WA_CLICKACTIVE mais ca ne change rien ma fenêtre est toujours gelée.

Si quelqu'un a une bonne idée je suis preneur je n'ai rien trouvé qui s'apparente à cela sur le forum.
Merci

C'est le manque de foi qui rend fous les hommes...
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
3
Merci
Ton pb vient surement d'une boucle de traitement très longue lors du traitement d'une commande. Pendant que tu fait ton traitement, tu ne traites pas les messages que le système t'envoi (demande de rafraîchissement). Pour y remédier :
- créer un thread pour effectuer le traitement
ou
- appeler régulièrement PeekMessage suivi de TranslateMessage et DispatchMessage.

La première solution est la mieux mais plus compliquée car nécessitre de gérer 2 threads et les confllits commencent. Dans ma source de splitter de fichier tu trouvera un exemple de traitement long fait dans un thread avec un progressbar et la possibilité de l'arrêtrer.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 142 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ymca2003
Messages postés
4
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
17 mai 2005
0
Merci
J'ai opté pour la solution avec PeekMessage( ) qui catch un WM_PAINT ca marche pas mal. En revanche je n'ai pas testé la méthode avec les threads.

Merci du coup de main

[font=Century Gothic]C'est le manque de foi qui rend fous les hommes...Gothic
Commenter la réponse de El Rabou