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] Acceder à une variable deuis une autre classe


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut [MFC] Acceder à une variable deuis une autre classe
    Bonjour,
    Apres avoir farfouillé le forum, je n'es toujours pas reussi a résoudre mon problème. Ca dois bien faire un moi je suis dessus et toujours rien du tout.

    J'ai pris le tableau sur CodeProject , il s'agit de MFC Grid Control, le tableau est controlé par la variable m_Grid qui se situe dans a classe principale de l'application CTest_mfcDlg . La gestion de mon image est controlé par la dérivation de la classe MFC CButton et qui s'appelle CBtButton3.
    Mon but est que dans la fonction OnMouseMove de CBtPicture3, je puisse acceder à m_Grid et affiche en temp réel la position de ma souris sur le bouton dans une case du tableau.

    J'espers que quelqu'un pourra m'aider car je ne sais vraiment pas comment faire du tout malgré les aide que j'ai. Je ne pense pas que ce soit la mort d'acceder a une variable de la classe pricipale de l'application depuis une autre classe ...
    Abientot

    Je travail avec vc6 et les mfc en dialog based.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    le grid et le bouton sont dans la meme fenetre ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    J'ai ma fenetre principale qui correspond à CTest_mfcDlg, Le bouton est controlé par la classe CbtButton3 et le tableau par m_grid sont dans la meme fenetre.

    donc voila si y'a besoin de plus de renseignement n'hesité pas.
    Il ne me reste plus que ce petit soucis pour terminer ce projet ^^
    Abientot.

  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
    Par défaut
    bien mais tu ne reponds pas à ma question!
    si les deux controles sont dans la meme fenetre ils partagent le même parent la dialogue (ta classe CTest_mfcDlg)
    a partir du bouton il suffit de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CTest_mfcDlg *pDlg=static_cast<CTest_mfcDlg *>(GetParent());
    pDlg->m_grid // etc..


  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    Ce que je voudrais faire au final, c'est de controler le tableau avec la variable m_grid situé dans CTest_mfcDlg depuis la classe CBtButton3
    Par exemple dans CBtButton3 j'ai OnMouseMove(..) et je voudrais afficher dans une case du tableau les valeurs que prends la souris.

  6. #6
    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
    et bien il me semble que je t'ai repondu ....

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    Oki mais je dois merder quelque part car le code fonctionne impecable si je le met dans la classe CTest_mfcDlg mais des que je met ce code dans CBtButton3, il me met qu'il ne connais pas la variable CTest_mfcDlg :/
    j'ai essayer d'ajouter #include"CTest_mfcDlg.h" dans CBtButton3.h mais il y a encore plus d'erreur.
    Je pense que j'ai oublié de faire un truc ^^ On ne dois pas etre loin de la solution oO

  8. #8
    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
    et bien oui si tu veux acceder a la classe tu devras mettre les includes necessaires dans ta classe bouton...
    en gros a peu pres les memes que ceux de ta classe dialogue..
    sinon pour contrer le probleme tu envois un message privé a partir du bouton a la classe parent et tu fais le traitement dedans.
    voir faq:
    http://c.developpez.com/faq/vc/?page...PrivateMessage
    et la plus de pb d'includes et tu as une indépendance (souhaitable) entre ta classe de bouton redefinit et ta fenetre parent.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    Encore moi :/
    Donc voila, j'ai réalisé le petit exemple de la faq. Tout fonctionne impecable que je fais PostMessage(WM_TEST); sur CTest_mfcDlg mais des que je le met dans une methode de CBtButton3 il ne se passe rien :'(

    Ps: Si je fais cette methode, est ce que je pourrais passer les points de OnMouseMove a ma fonction qui se trouve dans Ctest_mfcDlg lors du PostMessage ?

    C'est bizarre quand meme que ca soit si compliqué pour acceder a une malheureuse variable d'une autre classe oO

  10. #10
    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,
    c'est GetParent()->PostMessage qu'il faut faire dans le bouton ...

Discussions similaires

  1. Garder une référence vers une variable d'une autre classe
    Par choupeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/12/2007, 18h30
  2. Réponses: 6
    Dernier message: 20/04/2007, 15h24
  3. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  4. Passer une variable d'une form a l'autre
    Par 6BORG dans le forum Delphi
    Réponses: 3
    Dernier message: 19/08/2006, 17h15
  5. [debutant]passager une variable d'une page a une autre
    Par Eisy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2006, 11h18

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