IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Problème d'affichage dans une fenetre CDialog: DoModal!


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Par défaut Problème d'affichage dans une fenetre CDialog: DoModal!
    Salut,

    Bonh peut etre le titre de la discussion n'est pas très explicite!

    Alors, je souhaite afficher des trace en temps réel(lors de l'éxécution d'un programme). Quand l'utilisateur click sur le bouton oui (oui pour dire qu'on souhaite visualiser les traces en temps réel) une fenetre, créée dynamiquement s'affiche ayant un CEdit; c'est dans ce CEdit qu'on va afficher les trace.

    Voici le bout de code qui le fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    	if  (TRACE_EN_TEMPS_REEL == 1)
    	{	
    	        //tester si la fenetre a été déjà créée
    		if (premiereFois == 0) 
    		{	AfxMessageBox("On va afficher la fenetre");
    			dlg->DoModal();
    
                            //Pour dire que le DoModal a été déjà appelé
    			premiereFois = 1;
    		}
    
    		AfxMessageBox("avant l'appel de afficherTexte");
    		dlg->afficherTrace(chMessage);
    	}

    Ce qui est sur est que j'arrive à afficher la fenetre dlg, mais après plus rien: j'ai l'impression que l'exécution du prog s'arrete au niveau de la ligne "dlg->DoModal();". La preuve est que la ligne en bleu ne fait rien!

    Je pense que c'est un probleme lié au fait que la fenetre est modale. Je suis en train de me renseigner sur les fenetres non modales mais je en vois pas comment l'utiliser dans mon cas.

    Je m'explique d'avantage : le bout de code ci-dessus doit etre appelé chaque fois qu'on écrit une trace (il se trouve dans le coprs d'une boucle while) mais dès le premier appel à ce code, qui correspond d'ailleurs à l'affichage de la fenetre dlg, tout s'arrete et je ne peux meme pas écrire la premiere trace

    Quelqu'un peut m'aider?
    Merci pour toute aide

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    ben oui ,si c'est modale ça s'arrête à l'exécution de domodal, et ça reprend quand la dialogue se ferme...
    il te faut créer une dialogue non modale, faq: http://cpp.developpez.com/faq/vc/?pa...CreateModeless
    et
    http://cpp.developpez.com/faq/vc/?pa...gPostNcDestroy

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Par défaut
    Merci pour ta réponse!

    Je suis sur cette piste depuis un moment mais j'ai un pb avec le IDD. Ma fenetre je la crée dynamiquement, donc le IDD je ne l'ai pas .
    J'ai regardé sur le site de microsoft, et je vois qu'au lien de passer le IDD on peut se referer à la fenetre par son titre dont je dispose mais la méthode Create échoue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    
    pDlg = new CMyDlg(this);
    pDlg->Create(CMyDlg ::IDD,this);
    pDlg->ShowWindow(SW_SHOW);

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    et alors elle est bien associée a une ressource non ?

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Par défaut
    Bein non: je la crée dynamiquement sans ressource en utilisant d'ailleurs le code disponible dans la FAQ :

    http://cpp.developpez.com/faq/vc/?pa...wToMakeDynamic

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    ok , alors ils faut modifier pour utiliser CreateIndirect a la place de InitModalIndirect

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/02/2014, 09h00
  2. Affichage dans une fenetre
    Par mamadou_76 dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/05/2007, 12h11
  3. [MySQL] problème d'affichage dans une liste
    Par bromlecornu dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/05/2007, 16h08
  4. Affichage dans une Fenetre edit
    Par Fred2209 dans le forum C++Builder
    Réponses: 6
    Dernier message: 20/11/2006, 10h39
  5. Problème d'affichage dans une zone de "dessin"
    Par jason69 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 28/08/2006, 16h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo