Affichage CDialog dans plusieurs thread

Résolu
manyyy67 Messages postés 31 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 31 mai 2011 - 17 mai 2011 à 17:21
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 - 18 mai 2011 à 10:20
Bonjour,
je suis débutant en mfc
voila j'ai un problème j'ai une boite de Dialog
CInformationDlg qui est crée dans un thread d'un gros programme professionnel. Elle permet d'entrée des informations sur les évènements qui vont être réaliser dans le programme.
Se que je veut faire c'est ouvrir à nouveau cette même boite de dialog à la fin de mon thread principal. Pour cela j'ai utilisé le code suivant:
MessageBox("Add Comment?","comment",MB_YESNO|MB_ICONQUESTION);
if(IDYES)
{
CInformationDlg InfoDlg;
InfoDlg.Show();
}

Seulement la boite de dialogue qui s'ouvre n'est pas celle utilisée... elle s'ouvre avec d'autre information...

si quelqu'un peut m'aider je désespère...
merci

5 réponses

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
18 mai 2011 à 10:20
Je dirai que non , pas la boite de dialogue, les données doivent être stockées. Sinon déclaration de ta boite de dialogue à un endroit et on utilise son pointeur et tu peux faire plusieurs ShowModal.


louis
3
manyyy67 Messages postés 31 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 31 mai 2011
17 mai 2011 à 17:33
pardon le code que j'ai utilisé est:
InfoDlg.DoModal();
merci
0
cs_TeniX Messages postés 118 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 11 décembre 2011 2
17 mai 2011 à 21:58
Salut , c'est pas très clair.

Tu ouvres ton premier dialog InfoDlg.DoModal(); ? cela veut dire que tu doit fermer ce dialog , donc la boite est détruite , si tu veux la remplir automatiquement au début, il faudra le faire dans le ::OnInitDialog()
0
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
18 mai 2011 à 09:31
Bonjour,
pour arriver à ton résultat :
-tu mets dans ta thread une variable qui contient les éléments qui peuvent changer ( je pense les commentaires , donc mes_comments qui pourrait être une CStringList)
-ajoute une variable à ta boite de dialogue du même type que mes_comments
- dans la fonction onInitDialog, tu affiche tes éléments dans un/des contrôles
- à la fermeture de la boite de dialogue tu copies les nouveaux éléments si nécessaire.

En général , j'utilise ce cheminement avec les MFC:
-variables globales
- boite de dialogue avec les mêmes variables
- déclaration de la boite de dialogue
- copie des variables globales dans la booite de dialogue
- modification des variables
- fermeture de la boite de dialogue
-copie des variables de la boite de dialogue vers le variables gloables ou de la classe

louis14
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
manyyy67 Messages postés 31 Date d'inscription mercredi 30 mars 2011 Statut Membre Dernière intervention 31 mai 2011
18 mai 2011 à 10:15
OK
Donc si j'ai bien compris une fois qu'on a fermer une boite de dialog il n'y a plus moyen de la rapeller tel quel plus tard? y a pas une fonction qui permet de simplement cacher cette boite puis de la rouvrir ensuite?
0
Rejoignez-nous