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