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] Comment récupérer ce message ?


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut [MFC] Comment récupérer ce message ?
    Bonjour,

    J'aimerais récupérer le message de fermeture d'une fenêtre enfant, mais pas le message WM_CLOSE lié à l'id FILE_CLOSE de fichier->fermer.

    Je voudrais le message lié à la fermeture d'une fenêtre enfant lorsque l'on clique sur la croix en haut à droite de la fenêtre.

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    ptet que ca ca pourrait t'aider : http://www.codeproject.com/dialog/me...&select=367538

    doit y avoir un truc dans la faq aussi je penses
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  3. #3
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    oui, le message dont j'ai besoin est WM_QUIT mais le problème, c'est qu'il n'est pas dans la liste des messages lorsque j'utilise class wizard : j'ai WM_CREATE, WM_CLOSE, WM_TIMER, etc ... mais pas WM_QUIT

  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
    Points : 17 323
    Points
    17 323

  5. #5
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    je crois que WM_QUIT est liée à l'applications , (la classe dérivées de CWinApp)

    en revanche est ce que quand on quit on ne demande pas de fermer le dialog ? donc il doit bien y avoir un message WM_CLOSE lancé à ce moment nan ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  6. #6
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    J'ai fait comme dans la faq, j'ai sélectionné windows dans message filter : il y a beaucoup plus de messages qui s'affichent, mais toujours pas WM_QUIT.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    c'est qu'elle classe de base ta fenetre ?

  8. #8
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    C'est une fenêtre enfant splittée avec :
    une fenêtre de type CView
    une fenêtre de type CFormView

    J'essaye de récupérer le message WM_QUIT (quand on clic sur la croix) dans le document, mais ce message n'apparaît pas dans la liste.

  9. #9
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    euh je crois que WM_QUIT c'est pour quitter l'application donc si c'est juste pour fermer le document c WM_CLOSE qu'il faut intercepter !
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  10. #10
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    WM_CLOSE intercepte juste le message lorsque l'on clique dans fichier -> fermer, mais il n'intercepte pas le message lorsque l'on clique sur la croix pour fermer la fenêtre.

  11. #11
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    et tu as essayé de capté le message WM_QUIT dans ta classe dérivé de CWinAPP ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  12. #12
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    oui, il n'apparaît pas dans la liste

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    le WM_QUIT, c'est un message qu'on poste soi-même en appelant explicitement PostQuitMessage(), la plupart du temps. Il indique que la boucle de messages doit se terminer, mais il n'est jamais reçu par la moindre fenêtre.

    WM_CLOSE est le dernier message d'ordre de fermeture d'une fenêtre. Lorsque DefWindowProc() le traite, la fonction ferme la fenêtre (non sans la prévenir en envoyant WM_DESTROY et WM_NCDESTROY, mais à ce moment-là, je crois qu'il est déjà trop tard pour empêcher la fermeture).

    Note: Le menu File->Close envoie généralement WM_COMMAND(ID_FILE_CLOSE) ou WM_COMMAND(IDCLOSE), tandis que la croix envoie générelement WM_SYSCOMMAND(SC_CLOSE).



    Pour détecter la fermeture d'une fenêtre fille, je crois qu'il faut traiter le message WM_PARENTNOTIFY (et peut-être bien régler les styles qui vont bien pour que le message soit effectivement envoyé...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Mais le message WM_QUIT à ce que je sache c'est pour quitter la boucle de message de l'application.
    Si tu veux intercepter la fermeture d'une fenêtre enfant tu dois capter le message WM_CLOSE.

    Et je devine pourquoi tu veux intercepter la fermeture car lorsque tu refais ton opération fichier->ouvrir il y a un plantage de ton programme au niveau de la création de la fenêtre tout simplement parce que le code de création est dans ton document.

    http://www.developpez.net/forums/sho...d.php?t=152269

  15. #15
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 109
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par Gabrielly
    tout simplement parce que le code de création est dans ton document.
    C'est justement ce point là que je n'arrive pas à éclaircir ... mais je vais trouver !

  16. #16
    Membre éprouvé
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Points : 1 128
    Points
    1 128
    Par défaut
    Va sur ton ancien poste, je t'ai déjà montrer une piste.

Discussions similaires

  1. comment récupérer le message du vrai PHP ?
    Par junior68 dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2008, 12h13
  2. Comment récupérer mes messages de Outlook Express ?
    Par Lowelace dans le forum Thunderbird
    Réponses: 1
    Dernier message: 16/03/2008, 22h35
  3. Comment récupérer les messages d'erreurs ADO ?
    Par philnext dans le forum Bases de données
    Réponses: 6
    Dernier message: 05/04/2007, 14h01
  4. [MFC] Comment intercepter le message d'un slider ?
    Par Philippe320 dans le forum Visual C++
    Réponses: 11
    Dernier message: 21/07/2006, 18h54
  5. [MFC?] Comment récupérer la directory de l'exécutable?
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 14/05/2004, 15h22

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