Lancer une dialog dans un thread

Signaler
Messages postés
358
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
5 septembre 2006
-
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
-
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

Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut :

Utilise DoModal ()
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
35
Salut :





DisplayDialog dlg;
dlg.DoModal ();
Messages postés
358
Date d'inscription
vendredi 1 novembre 2002
Statut
Membre
Dernière intervention
5 septembre 2006

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
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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