Lancer une dialog dans un thread

perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 4 sept. 2006 à 19:46
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 5 sept. 2006 à 10:16
Bonjour,


Voila j'aimerais pouvoir lancer une dialog (DisplayDlg) depuis un Thread(ThreadDisplay)


DisplayDlg est de Type CDialog


Et ThreadDisplay est une classe utilisant _beginthreadex(0,0,ThreadDisplayFunc,
this,0,&(
this->Id)); pour se lancer.
dans  ThreadDisplayFunc j'ai :


inline
unsigned
int
__stdcall CThreadDisplay::ThreadDisplayFunc(
void *pvParam)


{


SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_ABOVE_NORMAL );


CThreadDisplay *pThis=reinterpret_cast< CThreadDisplay *>( pvParam) ;


pThis->Display = new DisplayDlg(pThis->Parent);



// pThis->Display->Create(IDD_Display,pThis->Parent);


// pThis->Display->ShowWindow(SW_SHOW);


// pThis->Display->EnableWindow(1);




pThis->Display->DoModal();









Le DoModal() ca marche pas et le Create() non plus j'ai pourtant cru comprendre que c'était possible de lancer une dialog depuis un thread!!!!
Vous voyez le prob?
Le but étant d'effectuer les opérations d'affichage d'un preview (display toutes les X milisecondes) dans un thread séparé pour ne pas figer l'interface principale!

Merci!
Ps : j'ai pris soins d'include ma classe DisplayDlg dans le fichier de ma classe CThreadDisplay

---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même

4 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 sept. 2006 à 22:14
Salut :

Utilise DoModal ()
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
4 sept. 2006 à 22:16
Salut :





DisplayDialog dlg;
dlg.DoModal ();
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
5 sept. 2006 à 09:26
Oui ba chez moi ca, ca marche a la compilation mais a l'exécution ca plante!

---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
5 sept. 2006 à 10:16
Logique.
Il ne faut jamais mettre a jour des controles visuel dans un thread.
Ou alors il faut faire cela dans des sections critique (Critical section).
Tu toruveras de la doc sur google.

Shell
0
Rejoignez-nous