chehouani
Messages postés4Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 8 avril 2007
-
7 avril 2007 à 01:10
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 2013
-
8 avril 2007 à 12:44
J'ai developpé une application MFC qui fait des calculs scientifiques. Les calculs démarent dans une boucle et j'affiche le résultat à chaque pas du calcul dans une fenêtre dialog. J'utilise la fonction SetDlgItemText( IDC_T, (LPSTR)szBuf); pour afficher mon résultat progressivement. Toute seule, cette fonction n'affiche rien jusquà la fin de la boucle pour le dernier résultat. J'ai mis UpdateWindows après SetDlgItemText( IDC_T, (LPSTR)szBuf) ça marche mais dès que je clik sur la fenêtre de dialogue où je passe à une autre application en cours mon programme s'arrête ! Merci de m'aider
hassouna
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 7 avril 2007 à 01:47
Salut:
Ce geure de choses se passent lorsque j'essaye de dessiner sur une fenêtre hors de la section réservée au message WM_PAINT d'où je perd la persistance de dessin car le message WM_PAINT est évoqué lorsque le contenue de la zone client de l'application a besoin d'être redessiner.
Dans quelle partie du code tu fais l'affichage? Est ce c'est en OnPaint () ou non?
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
chehouani
Messages postés4Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 8 avril 2007 7 avril 2007 à 23:37
Salut, J'ai testé CWnd::SetWindowText(szText)
ou
SendMessage(CWnd::_m_hWnd, WM_SETTEXT, 0, (LPARAM)szText);
C'est encore pire ! puisque l'affichage ne se fait plus. Moi je voudrais afficher dans un Cedit Dialog ID_Machin le résultat de mes calculs en boucle
En fait comment ça marche (Traitements longs se font dans un thread séparé.!) plus d'explication Merci
hassouna
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 8 avril 2007 à 00:29
Salut:
Crées un Thread è l'aide de la fonction AfxBeginThread pour exécuter les calculs à la place du processus principal.
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 8 avril 2007 à 12:44
Salut:
Bien sûr tu vas lancer le thread créé avec AfxBegibThread ou avec CreateThread quand tu as cueillis les données par exemple ou si appuie sur un bouton.
________________________________________________________________________________
A.B. :
"Dieu nous donne des mains, mais il ne bâtit pas les ponts"