bonjour à tous, je suis nouveau sur le forum et me permet de venir chercher une aide.
je développe sous VC++ 6.0 et je galere à fond avec les threadsJe vous explique mon probleme.
Je travaille sur une application qui doit retracer à l'écran le mouvement d'un objet. Ce mouvement est défini par un suite séquentielle de points que je stocke dans un tableau.
Ma fenetre principal possede une variable de type entier (m_ID) qui correspond à l'identifant du point courant.
Je voudrais que lorsque j'appuie sur un bouton, un thread se lance et aille me tracer tous mes points. (je veux utiliser un thread sinon je perd la main sur l'application tant que tout n'est pas tracé ! )
En gros l'algo du thread est :
sur clic du bouton j'ai mis appelé AfxBeginThread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 tant que m_ID < max { m_ID++ Mise a jour de l'affichage Temporisation. }
Et voici ma fonction ThreadLecture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part AfxBeginThread(ThreadLecture,this)
Quand je compile ca passe mais a l'execution j'ai une erreur. Visiblement il me demande de passer par un handle sur la fenetre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 UINT NomFenetre::ThreadLecture(LPVOID pParam) { NomFenetre* prThis = reinterpret_cast<NomFenetre*>(pPram) while(prThis->m_ID < prThis->m_IDmax) { prThis->m_ID++; prThis->majgraphique; //majgraphique appelle reellement invalide rect pour mettre a jour plusieurs zones) sleep(200); } return 0; }
Or quand je passe par un handle via FromHandle, c'est un handle générique (type CWnd) et non du type de ma fenetre et je n'ai donc plus acces a mes variables (m_ID).
Auriez vous une idée ?
Merci d'avance pour votre aide.
[Balises CODE rajoutées par Loulou24, merci d'y penser à l'avenir]
Partager