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

  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 ?

  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 !

  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 ?

  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 380
    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 380
    Points : 41 576
    Points
    41 576
    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é...)

  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