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] Communication entre les classes CFrameWnd et CWinApp


Sujet :

MFC

  1. #1
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut [MFC] Communication entre les classes CFrameWnd et CWinApp
    Bonjour à tous,

    c'est la première fois que je participe à ce forum ; j'espère que je serai suffisament clair
    j'ai déjà développé quelques applications avec les MFC auparavant.

    Pour celle-ci, j'utilise la librairie PGL http://www.codeproject.com/miscctrl/pgllib.asp
    qui permet d'afficher facilement des courbes dans leurs repères.

    CMainFrame est de la classe CFrameWnd
    CGavrocheAPP de la classe CWinApp
    CPGLGraphView de la classe CView

    Pour afficher une courbe, j'ai le code suivant (fourni par l'auteur) et qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    void CMainFrame::AfficherCourbeXFY() {
     	// TODO: Add your command handler code here
     
     	// setting graph
     CPGLGraph* pGraph = ((CGavrocheApp*)AfxGetApp())->GenererGraphiqueXFY();
     
    if (pGraph) {
     
    	pGraph->ZoomAll(TRUE);
         ((CPGLGraphView*)GetActiveView())->SetGraph(pGraph );
     
     	GetActiveView()->InvalidateRect(NULL,FALSE);
     
    		} //if
     }//proc
    GenererGraphiqueXFY() sert à entrer les valeurs (x,y) dans l'objet pGraph et la suite à afficher la courbe.


    MON PROBLEME :
    lorsque CGavrocheApp intercepte une commande du menu,
    je veux alors afficher la courbe, donc lancer la procedure
    AfficherCourbeXFY()
    (donc que CGavrocheApp lance une procedure de CMainFrame, d'où mon titre)

    Et là, je ne sais plus faire ....
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CMainFrame::AfficherCourbeXFY();
    (désolé, c'est peut-être une horreur d'écrire ça)
    j'ai une erreur C2352
    "illegal call of non-static member function"

    Comment m'en sortir ?
    Merci d'avance de bien vouloir vous intéresser à mon problème

    Philippe
    [a l'avenir utilise la balise de code ,Merci Farscape]

  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,
    on accede à la mainframe avec la fonction AfxGetMainWnd():
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CMainFrame *TheFrame =static_cast<CMainFrame *>(AfxGetMainWnd());
    pense a consulter la faq:
    http://c.developpez.com/faq/vc/?page=sommaire

  3. #3
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut
    Merci beaucoup pour ce conseil (que je n'ai pas su trouver dans la FAQ )

    Comment afficher [RESOLU] dans le forum ?

    Philippe

  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
    avec le bouton en bas a gauche

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

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. Communication entre les classes
    Par jagboys dans le forum MFC
    Réponses: 6
    Dernier message: 20/06/2006, 06h32
  4. [MFC] communication entre onglets d'une fenêtre
    Par bigboomshakala dans le forum MFC
    Réponses: 12
    Dernier message: 29/05/2004, 12h12
  5. Réponses: 6
    Dernier message: 28/02/2004, 09h19

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