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 :

Interception du ID_FILE_SAVE


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 37
    Par défaut Interception du ID_FILE_SAVE
    Salut,

    Je travaille sur un programme dans lequel je dois intercepter le signal ID_FILE_SAVE. J'ai trouvé comment on doit faire grace à la FAQ : on utilise la fonction "OnCommand". Tout marche comme prévu lorsque je clique sur le boutton "disquette" dans la barre d'outil ou quand je vais sur "Fichier->Enregistrer".

    Par contre, Si je fais "CTRL+S" Je ne passe pas dans le "OnCommand" et je me retrouve directment dans le Serialize(CArchive&). Quelqu'un sait-il pourquoi?

    Merci

  2. #2
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    Salut,

    C'est ON_COMMAND qu'il faut utiliser.

    A inserer entre BEGIN_MESSAGE_MAP(...) et END_MESSAGE_MAP

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ON_COMMAND(ID_FILE_SAVE,OnFileSave)
    Prototype à declarer dans le .h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    afx_msg void OnFileSave();
    et enfin la fonction dans le .cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void CMaClasse::OnFileSave()
    {
    }
    Il y a aussi ON_UPDATE_COMMAND_UI a gérer
    Et ne pas oublier le ID_FILE_SAVE_AS ...

    @+

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 37
    Par défaut
    Alors je vois ce que tu me dis de faire. Mais le probleme, c'est que comme tu peux le voir dans le lien en dessous, j'ai utilisé la fonction OnCommand de la mainFrame pour intercepter les messages.

    FAQ-developpez.com

    Du coup, si je rajoute ton code, je ne passe plus dans la fonction OnCommand.

    En fait, le but de mon opération est de faire un test pour savoir si le programme doit faire un SAVE ou un SAVE_AS. Je fais donc ce test dans le OnCommand et je change le "wParam" en ID_FILE_SAVE ou ID_FILE_SAVE_AS. Je ne vois pas comment on peut le faire avec la fonction OnFileSave();

  4. #4
    Membre chevronné Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Par défaut
    ok je vois

    il y a une boulette dans le code de la FAQ:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (LOWORD(wParam)==ID_FILE_SAVE)
    {
    }
    il manque le LOWORD()

    si HIWORD(wParam)=1, la commande vient d'un raccourci clavier (accelerator)

    @+

  5. #5
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 37
    Par défaut
    Super,
    J'avais vu une histoire comme ca sur je sais plus quel site mais j'avais pas compris. Maintenant ca marche tres bien.

    Merci stephdim

    PS : j'envoie un MP a Farscape pour qu'il le change à l'avenir

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2003, 13h43
  2. Interception du signal SIGINT
    Par macleod dans le forum MFC
    Réponses: 2
    Dernier message: 01/07/2003, 18h39
  3. Interception des commandes in et out
    Par KDD dans le forum x86 16-bits
    Réponses: 13
    Dernier message: 18/12/2002, 16h55
  4. [VB6] Intercepter le printscreen
    Par Rami dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/10/2002, 18h21
  5. [VB6] Interception des évènement Copier/Couper/Coller
    Par youtch dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/10/2002, 17h09

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