2 boites de dialogues dans un thread secondaire

2 boites de dialogues dans un thread secondaire - C++ - Programmation

Marsh Posté le 22-07-2008 à 18:28:57    

bonjour,  
 
Pour une application, utilisant visual2008 et les MFC, je crée un thread dans lequel je crée mon IHM principale (create (IDD...) puis ShowWindow()).
A la sélection d'un item du menu de l'IHM principale, je souhaite crée une boite de dialogue modale dont l'IDD est attaché à une classe.
 
Au final, à l'affichage de la deuxieme boite de dialogue, il n'est plus possible de cliquer, ni sur l'une ni sur l'autre, comme si elles etaient occupées. En mode debug, je m'apperçois que le code est bien dans le peekMessage de la fonction DoModal(). Y aurait-il un conflit quelque part?
 
Pour illuster voici les parties du code :
 
procedure du thread secondaire :
 
// Creation de l'IHM principale //
CIhmPrincipal main_ihm ;
 
//affichage de l'IHM principale
main_ihm.StartIhm();

 
dans le constructeur de la classe de l'IHM principale :
AfxGetApp()->m_pMainWnd = this;
this->Create(IDD_IHM_PRINCIPAL);

 
Fonction StartIhm() :
...
this->ShowWindow(SW_SHOWMAXIMIZED);
 
Dans la fonction appelée à la selection de l'item du menu:
int result = 0;
this->SetForegroundWindow();
m_pcIhmSecond = new CIhmSecond(this);
result = m_pcIhmSecond->DoModal();

 
 
Merci d'avance.

Reply

Marsh Posté le 22-07-2008 à 18:28:57   

Reply

Marsh Posté le 22-07-2008 à 20:23:26    

multi-thread+fenere modale qqpart ca sent pas bon. Pourquoi ne pas avoir des fenetres non modales ?

Reply

Marsh Posté le 23-07-2008 à 00:06:30    

la principale n'est pas modale mais pour la seconde, je souhaite le comportement d'une fenetre modale (attente de l'appui d'un bouton pour continuer le reste)

Reply

Marsh Posté le 23-07-2008 à 09:08:54    

pourquoi la threader alors ?

Reply

Marsh Posté le 23-07-2008 à 23:37:10    

mon appli est décomposée en plusieurs threads pour effectuer des taches précises.
Parmi elles, il y a le thread pour la partie IHM.

Reply

Marsh Posté le 23-07-2008 à 23:38:57    

ok, mais bon, ttes tes fenetres appartiennent à ce seul thread, sinon je vois pas l'interet

Reply

Marsh Posté le 24-07-2008 à 00:14:55    

en effet, toutes les ihms appartiennent au même thread comme indiqué dans la portion de code que j'ai donné.

Reply

Marsh Posté le 28-07-2008 à 18:57:29    

personne n'a une idée????
 
Que se passe t'il lorsqu'il y a deux peekMessage() qui tournent en même temps (1 dans le thread depuis lequel l'ihm principale tourne et l'autre dans la fonction doModal() de la deuxieme boite de dialogue)?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed