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 :

Communication entre les classes


Sujet :

MFC

  1. #1
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Communication entre les classes
    Bonjour,
    Je suis en train de faire une petite apllication MFC de type boite de dialogue.
    J'ai donc ma classe principale ou je dispose d'un listbox.
    En parrallèle j'ai crée deux nouvelles classes (ClasseA et ClasseB) que je vais utiliser dans ma classe principale.
    Comment faire pour remonter les messages des classes A et B dans mon programme principales afin de remplir un listbox de log (evènements) ?
    En conséquence, j'ai pensé à poster des messages à travers des messages privés.
    Est ce une bonne solution ?
    Y a t il d'autres méthodes ?

  2. #2
    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
    Par défaut
    salut,
    c'est une solution, tout comme disposer d'un pointeur sur la classe en question pour utiliser le controle en direct.
    comme dans ce post:
    http://www.developpez.net/forums/sho...795#post959795

  3. #3
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Communication entre les classes
    Bonjour,
    Je vais regarder cet exemple de plus près...
    Sinon j'ai une autre question.
    Pour l'instant j'utilise la methode postmessage pour envoyer des messages à la classe principale. Voici comment je procède :
    1. Dans la classeA, je stocke le message dans un variable
    2. Puis au moment venu je fais PostMessage
    3. Dans le classe principale, à la réception du message je récupère cette variable de la classeA puis je mets à jour mon listbox.

    Lorsque les évenements dans la classeA sont serrés je poste plusieurs messages. La pompe à message va un peu moins vite que le déroulement du code et donc je me retrouve toujours avec les memes messages dans mon
    listbox. Afin d'éviter cela j'utilise actuellement un sleep. Mais c'est pas bon !!!
    Y a t il une autre solution pour remédier à ce problème ?

    Merci.

    PS : Aller France !

  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
    Par défaut
    le sleep n'arrangera rien ,une solution consiste a inserer l"appel d'une pompe a messages dans la fonction associée au message privé.
    voir faq:http://c.developpez.com/faq/vc/?page...rk#PumpMessage


  5. #5
    Membre confirmé Avatar de jagboys
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 166
    Par défaut Communication entre classes
    Bonjour,
    Je ne comprends pas très bien ce que vous voulez dire.
    Faut il que je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             ::TranslateMessage(&msg); 
             ::DispatchMessage(&msg);
    dans la fonction qui traite mes messages ?
    Merci

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    TranslateMessage n'est nécessaire que si tu as besoin du clavier (traduit les WM_KEYDOWN et WM_CHAR).
    DispatchMessage est nécessaire : C'est cette fonction qui appelle les fonctions des fenêtres.
    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.

  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
    Par défaut
    le post de la faq est pourtant clair il me semble !
    Citation Envoyé par faq
    Solution intégrer dans sa boucle l’appel de la fonction suivante qui pourrait être une fonction static de la classe d’application par exemple:
    donc tu integres cette fonction ou tu veux .
    et tu en fait l'appel dans ta fonction.

Discussions similaires

  1. [WD14] POO Communication entre les classes
    Par jimmypage dans le forum WinDev
    Réponses: 22
    Dernier message: 15/09/2011, 09h30
  2. communication entre les classes
    Par sara_qt dans le forum Qt
    Réponses: 0
    Dernier message: 11/04/2009, 20h11
  3. Réponses: 3
    Dernier message: 22/11/2005, 11h12
  4. [visual C++/Matlab] communication entre les deux
    Par Bilouzzz dans le forum MFC
    Réponses: 2
    Dernier message: 15/10/2005, 05h05
  5. Comparaison entre les classes et les fonctions
    Par Ashgenesis dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 08/09/2005, 19h09

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