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]Pb de reception des messages!


Sujet :

MFC

  1. #1
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut [MFC]Pb de reception des messages!
    Bonjour!
    Voilà j'ai crée une application SDI dans la quelle il y'a une barre de menu qui contient un menu "ajouter".Commande "ajouter" ouvre une boite de dialogue dans laquelle il y'a 2 bouton "Add" et "OK" et un edit.L'edit sert à recuperer la valeur entrée par l'utilisateur une fois qu'il clic sur"Add".
    Cette valeur je dois le recuperer dans la classe"CMaclasseView".
    Mon probleme est comment lié l'action "clic sur le bouton Add" avec la classe "CMaclasseView"
    Merci pour votre aide!!!!!

  2. #2
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Tiens j'avais oublié!
    Je voudrais savoir aussi comment declarrer une variable globale pour toutes les classes d'un projet?

  3. #3
    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
    salut,
    si tu ajoutes le message dans le classview directement sur ta classe fenetre
    tu n'auras plus de pb au lieu de le mettre sur la classe d'application....
    quand aux variables globales sujet à polemiques sur le forum !
    divers post et reponses sont dispos en utilisant la recherche avancee .

  4. #4
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Comme toujours vous etes là pour nous!Farscape.
    Vous ne savez combien vous aidez les gens!

    Voilà la solution que vous m'avez proposez je l'avais essayé!(Appelle AppWizard et associe la command à la classe MaclasseView!)Seulement le message n'est pas reçu!.Je ne sais pas pourkoi?? Et pourtant la solution marche bien avec les commandes du menu!

  5. #5
    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
    salut,
    ce que j'ai pas bien compris ,
    le message tu arrives a le trapper quelque part ou pas ?
    sinon verifies qu'il n'est pas deja mapper quelque part du style:
    classe App,classe CMainFrame .
    il n'y a pas de raison pour que ça ne fonctionne pas , donc faut chercher le truc tout bête.


  6. #6
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Bonjour;
    Farscape.Après avoir lu ta derniere question je suis parti voir!.Effectivement le message etait mape qlq part! .Je l'ai supprimé(La boite de dialogue) et je l'ai associé à la classe "ClasseView".Et bingo le message est réçu dans la classe!.Mais voilà il ne reste pas actif .C'est le code suivant que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      MaClasseView::onAjouter()
            {
               CDialog dlg;
                dlg.Create(IDD_DIALOG1);//Ou bien dlg.Creat(IDD_DIALOG1,this->GetWindow(/*avec tous les parametres*/));
                dlg.ShowWindow(WS_SHOW);
                //dlg.DoModal ne fonctionne "debugage" dans ce cas!
             }
    Comment peut on rendre "dlg" la fenetre active?

  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
    salut,
    dis moi tu a une raison particuliere pour ne pas faire directement ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     CDialog dlg;
    Dlg.DoModal();

  8. #8
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Au fait je n'ai pas créé une classe pour la boite de dialogue(Créée avec l'editeur des ressources),je lui ai associé directemment à la classe ClasseView.
    Et quant je fait "dlg.DoModal()"à l'appel de la commande dans l'execution Bouf! j'ai une assertion.Entré dans le mode debugage, il y'a une "ASSERT(......)" dans le code de la classe mère"VIEW".

  9. #9
    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
    je pas sur de bien comprendre la raison qui te pousses à faire ça !
    la ressource associée à la dlg si elle est de type child c'est sur ça va faire mal à l'execution ton prog aura tout l'apparence d'etre fige.
    et pour reprendre ton dernier pb je comprend pas bien quand tu dis:
    Et bingo le message est réçu dans la classe!.Mais voilà il ne reste pas actif .C'est le code suivant que j'utilise:

  10. #10
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Voilà!
    Au fait la boite de dialogue ne reste pas active;quant je l'appelle je la vois presque pas!.Elle est créée, mais elle a un pb,elle n'est pas visible!.
    On dirait qu'après l'exécution de "dlg.ShowWindow();"le programe passe à l'instruction suivante!.Par exemple j'ai fait un MessageBox("......");" après l'instuction "dlg.ShowWindow()"; et celle ci s'execute sans que le progrmme ne me donne la main pour controler la boite de dialogue!
    je ne sais pas si je me suis fais comprendre mtnt! [/i]

  11. #11
    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
    a mon avis ta dialogue dans la ressource a le type child au lieu de popup.

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 258
    Points : 288
    Points
    288
    Par défaut
    Citation Envoyé par thief
    Tiens j'avais oublié!
    Je voudrais savoir aussi comment declarrer une variable globale pour toutes les classes d'un projet?
    Sur la polémique qui sévit sur ce forum moi je suis pour, donc je te donne la méthode ensuite à toi de voir si tu es pour ou contre


    Ta variable sera une variable membre à la classe CMonApp (dont l'objet s'appelle theApp).
    A la fin du fichier CMonApp.h après la définition de la classe tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    extern CMonApp theApp;
    De cette façon tout les fichiers incluant CMonApp.h (c'est à dire tous) pourront accéder à l'objet theApp et ainsi à la toutes les variables de la classe CMonApp.

    Voilà tu as tes variables "globales"

  13. #13
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Salut!

    Farscape a dit:
    a mon avis ta dialogue dans la ressource a le type child au lieu de popup.

    Tu peux me dire cela fait quoi comme difference quant à l'affichage de la boite de dialogue!

  14. #14
    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
    si on utilise une CDialog on doit selectonner popup (modale).
    pour une CFormView une fenetre Child (non modale) .
    declarer une Dialog child avec la classe CDialog empeche le traitement modale de la dialog .....

  15. #15
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Farscape merci!
    Malheureusement j'ai pas pu avoir la solution!.J'ai contourner le probleme par une astuce de valeur de reour!.
    Merci cas meme!

    En ce ki concerne les variables globales.La solution avec "extern MaClasseApp theApp" ne fonction!.Il y'a une erreur de linkage!.Genre multiple declaration de la variable!(due aux includes de "MaClasse.h" dans tous les autre fichiers).
    Si quelqu'un a une solution pour contourne cela, il me ravira....

  16. #16
    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
    tiens une des multiples reponses sur le sujet:
    http://www.developpez.net/forums/vie...hlight=globale

  17. #17
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Encore merci
    J'espere tu continuera aussi longtemps que possible à apporter ton aide aux gens comme moi!
    Que tu sois recompenser!!!

  18. #18
    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
    merci ,
    tu m'a pas dis comment tu a bidouiller avec ta dialogue pour t'en sortir

  19. #19
    Membre du Club Avatar de thief
    Inscrit en
    Décembre 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 93
    Points : 47
    Points
    47
    Par défaut
    Farscape!
    C'est simple j'ai repris la modelisation de mon projet!.Au fait puisque j'arrivai à Maper l'evement clic dans la classe "MonDlg" associée à la boite que j'ai crée avec avec l'editeur des ressources; alors j'ai juste declaré une variable membre(type POINT pt pour mon cas) qui recupere les entrées de l'utilisateur depuis "Edit1 et edit2" dans la boite de dialogue.Et j'ai declaré une fonction membre qui retourne les valeurs de pt( POINT Getpt());
    Et comme j'ai besoin de cette valeur pour la continuité dans la classe View alors je declare laba une variale membre de type(MonDlg* m_Dlg);
    celle ci s'occupe de mise à jour d'une autre variable que j'ai besoin dans View! .
    J'ai pas le code sur moi sinon j'allais de les faire part!
    Encore merci à toi!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/06/2015, 10h53
  2. Faites des messages corrects !!!
    Par Alacazam dans le forum C++
    Réponses: 6
    Dernier message: 23/03/2006, 15h56
  3. Réponses: 4
    Dernier message: 07/07/2005, 09h03
  4. Réponses: 3
    Dernier message: 11/06/2003, 00h18

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