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] problème fermeture de plusieurs boites de dialogue en même temps


Sujet :

MFC

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 38
    Par défaut [MFC] problème fermeture de plusieurs boites de dialogue en même temps
    Bonjour, au boulot je bosse sur VS C++ 6.0.

    J'ai 3 boites de dialogues

    La 1ère nommé "toto" par exemple possédant 3 boutons :
    - Sauvegarder et fermé --> ok sa marche
    - Sauvegarder -> OK
    - fermé --> ouverture d'une deuxième boite de dialogue "tata"

    la boite "tata" possède 2 texte brute lui demandant "s'il veut continuer sans enregistrer" et 2 bouton
    - Non ( Fermeture de "tata" mais pas de "toto") --> OK
    - Oui (Fermeture de "tata" et de "toto")

    voila mon problème je n'arrive qu'à fermé "tata" vu que je suis dans la bonne classe

    par contre j'aimerai aussi fermé "toto" en même temps que "tata" quand j'appuie sur oui
    et là je ne sais pas comment faire

    pouvez vous m'aidez je me suis arraché les cheveux deçus toute la journée merci beaucoup

    merci beaucoup

  2. #2
    Membre très actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Par défaut
    bonjour,

    je n'ai jamais bossé avec cette librairie, mais si tu es sur Qt et que tu connais la notion de SLOT tu peux essayer de reproduire un truc assez similaire : à la récupération de l'information "fenêtre tata fermée", tu ferme toto. Ce n'est peut-être pas une fonction MFC qui va te sauver la mise, mais plutôt un algo de ta part, non ?

  3. #3
    Membre émérite
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Par défaut
    Une autre solution (meilleure ou pire, je ne connais pas non plus MFC), serait de passer un pointeur vers "toto" à "tata".

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 38
    Par défaut
    mon j'ai résolu mon problème en passant par des messagesbox mais j'aimerai quand même avoir ma réponse car je pense qu'il y a beaucoup de moment où on veut fermer deux boites de dialogues en même temps

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Salut,

    Mes souvenirs MFC/visual 6 sont assez lointain, mais n'utilises-tu pas CDialog:: DoModal() pour lancer la seconde fenêtre ? Ce qui veut dire qu'au retour de celle-ci, tu ferme la première ?
    Si les boites sont non modales, alors il faut faire explicitement le lien entre les deux pour que la première soit informée de la fermeture de la seconde.

    Remarque: Visual 6 ??? Tu as trouvé ça dans un site de fouille archéologique ? Visual 6 n'est plus maintenu depuis belle lurette et est un compilateur fragile et assez non standard.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    Sinon, pensez aussi au concept de fenêtre "owner" qui permet de synchroniser la fermeture de fenêtres satellites d’une fenêtre "principale".

  7. #7
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut
    Salut,

    Quand tu fermes la dernière boite de dialogue apparue ( au dessus de toutes les autres que tu as pu ouvrir ), ferme-là ( la boite ) en faisant un EndDialog(ID_xxxx).
    Dans la boite en dessous ( celle qui a appelé la précédente ), si le retour du DoModal() ( en supposant que tu es sur de mode de fonctionnement ) est
    ID_xxxx, tu fermes la boite en cours (=> suppose de faire if(wwww.DoModal()==ID_xxxx){ ... } )
    Le ID_xxxx, c'est toi qui le défini.
    A un millième de seconde près, t'auras l'impression qu'elle se ferme en même temps...

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 463
    Par défaut
    Faites travailler pour vous le système de fenêtrage du Kernel Windows, utilisez la propriété Owner des fenêtres.

Discussions similaires

  1. Réponses: 8
    Dernier message: 15/05/2006, 15h54
  2. Réponses: 2
    Dernier message: 20/04/2006, 13h20
  3. Réponses: 5
    Dernier message: 06/03/2006, 16h15
  4. [MFC]Application basée sur des boites de dialogue
    Par -=Spoon=- dans le forum MFC
    Réponses: 2
    Dernier message: 24/08/2005, 11h55
  5. Pb plusieurs boites de dialogues
    Par schnito dans le forum MFC
    Réponses: 10
    Dernier message: 25/02/2004, 21h44

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