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 :

[MFC]traiter les messages d'un boite qui en ouvre une autre.


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut [MFC]traiter les messages d'un boite qui en ouvre une autre.
    suite a mon premier probleme deja résolu par Farscape (merci encore)
    cette histoire de pompe a message ca ma donné des idées pour un autre probleme

    jai une boite disons CDialog1 qui possede un bouton CButton1
    quand on appuie sur CButton1 ca ouvre CDialog2 ( DoModal(); )
    pendant que CDialog2 est active je ne recois plus les messages dans CDialog1 .
    A priori c'est normal mais la j'aimerais pouvoir recevoir les messages .
    et le probleme est que si je crée CDialog2 avec Create(); je vois pas trop comment attendre que CDialog2 est fini pour pouvoir appeler DestroyWindow();
    A moins evidemment de lancer une procédure bidon qui utilise justement cette fameuse pompe a messages et boucle a l infini tant que CDialog2 a pas fini mais je trouve pas ca propre .

    Ca doit etre un probleme vraiment bateau mais j'arrive pas a visualiser une solution

  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
    verifies deja si tu n'as pas donné a la dialogue2 la dialogue1 comme parent...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut
    a priori non , dans le constructeur c'est par defaut a NULL .

  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
    pourquoi appeler destroywindow si la fenetre se ferme par une action utilisateur ?
    la seule chose que tu as besoin de te soucier c'est le delete de l'objet :
    http://c.developpez.com/faq/vc/?page...gPostNcDestroy

  5. #5
    Invité
    Invité(e)
    Par défaut
    salut,

    je prends la discussion en cours et j'ai a peu pres la meme question que platypus.

    J'ai une boite de dialogue 1 qui lance une boite de dialogue 2 avec DoModal.

    J'aimerai pouvoir continuer sur les 2 boites de dialogue, pas que sur la 2eme.
    Et j'aimerai aussi faire du drag&drop entre ces boites.

    quelqu'un aurait une idee ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut
    du coup l objet de la classe CDialog2 est membre de la classe CDialog1 par contre ?

    en fait je faisais tout dans le code du bouton .
    incluant la déclaration aussi.

  7. #7
    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
    tu en a eventuellement besoin mais pas pour la fin ...,vu que l'objet se detruit lui-meme.
    il serait plus utile de passer un pointeur de dialog1 a dialog2
    pour que sur la fermeture dialog2 affecte les resultats dans dialog1....


  8. #8
    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
    Citation Envoyé par bill baroud
    salut,

    je prends la discussion en cours et j'ai a peu pres la meme question que platypus.

    J'ai une boite de dialogue 1 qui lance une boite de dialogue 2 avec DoModal.

    J'aimerai pouvoir continuer sur les 2 boites de dialogue, pas que sur la 2eme.
    Et j'aimerai aussi faire du drag&drop entre ces boites.

    quelqu'un aurait une idee ?
    salut ,la boite de dialogue n'est pas le plus indiqué pour ça .
    le model d'application MDI permet ce fonctionnement naturellement...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut
    je suis pas sur de te suivre .
    actuellement je declarais CDialog2 dans le code du bouton de la 1 .
    de ce fait a la fin du code du bouton la CDialog2 disparait si ouverte avec Create();

  10. #10
    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
    vu que tu crée un boite de dialogue non modale le code du bouton ne doit pas attendre ..
    on commencera par rendre disable le bouton pour eviter une reentrance.
    l'objet dialog2 est autonome .
    quand il se ferme il s'occupe de mettre a jour par pointeur interposé la dialogue 1 et de reactivé le bouton de la dialogue.


  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut
    ok je crois avoir compris .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void CMyDlg::PostNcDestroy() 
    {
    	CTouchgoDlg* pParent = (CTouchgoDlg*)GetParent();
    	pParent->c_ButtonTest.EnableWindow(true);
    	CDialog::PostNcDestroy();
    	delete this;
     
    }
    je peux remettre le bouton enable comme ecrit ?
    a priori j'ai une erreur bizard.

  12. #12
    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
    tu es sur de ton GetParent() ?
    ça ne fonctionne que si dans le constructeur de la dialogue2 tu l'a specifié..

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 67
    Par défaut
    oui voila c'est bon .
    j'ai spécifié le parent dans le constructeur de la 2eme Boite et ca roule .

    Merci encore pour toute ton aide !!

  14. #14
    Invité
    Invité(e)
    Par défaut
    en fait, je ne peux pas utiliser de MDI. Je fais une extension à une application existante.

    Mais j'ai trouve comment lancer la fille

    je suis sur le drag & drop

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

Discussions similaires

  1. traiter les messages systèmes
    Par Patnel dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 18/01/2013, 07h17
  2. les messages de ma boite mail vont directement sur outlook
    Par beatriceregnault dans le forum Outlook
    Réponses: 1
    Dernier message: 15/07/2012, 13h08
  3. Traiter les messages d'une frame
    Par etranger dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/04/2007, 15h26
  4. [Mail] Telecharger les message de ma boite mail
    Par youcef81 dans le forum Langage
    Réponses: 5
    Dernier message: 07/08/2006, 13h26
  5. [MFC] dévier les messages de MESSAGE_MAP
    Par mychawel dans le forum MFC
    Réponses: 3
    Dernier message: 12/07/2004, 14h05

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