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]Problème pour obtenir un pointeur d'une CFormView


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8
    Par défaut [MFC]Problème pour obtenir un pointeur d'une CFormView
    Salut,

    J'ai un énorme problème : je n'arrive pas à récupérer un pointeur d'une classe dérivée CFormView !
    Je m'explique : j'ai créé une application SDI dans laquelle ma MainFrame est divisée en 2 classes dérivées CFormView grâce à une CSplitterWnd. Dans l'une de ces classes dérivées CFormView, j'utilise une CTabCtrl. Cette TabCtrl me permet d'afficher des fenêtres dérivées de la classe CDialog.
    Le problème c'est que je n'arrive pas à accéder a des variables ET des fonctions de ma classe CFormView à partir des fenêtres créer pour ma TabCtlrl.
    Mes fenêtres pour la TabCtrl sont créer de la façon suivante dans ma classe CFormView
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	//Dans le .h
    	#include "Dialog1.h"
    	#include "Dialog2.h"
    ...
    public:
    	CDialog1 *Dialog1;
    	CDialog2 *Dialog2;
     
     
    	//Dans le .cpp
    	Dialog1=new CDialog1();
    	Dialog1->Create(IDD_DIALOG1,m_TabControl.GetParent());
    	Dialog2=new CDialog2();
    	Dialog2->Create(IDD_DIALOG2,m_TabControl.GetParent());
    De cette façon, je peux accéder aux variables et fonctions de mes fenêtres de ma TabCtrl depuis ma classe CFormView. Mais ce que je veux c'est l'inverse : pouvoir avoir accès aux variables et fonctions de ma classe CFormView depuis mes fenêtres dérivées de la classe CDialog.
    J'ai essayé de faire un static_cast<CMyFormView*>(AfxGetMainWnd()) dans mes fenêtres CDialog mais çà marche pas !

    J'ai cherché un peu partout sur internet mais je n'ai pas vu quelqu'un ayant eut les mêmes problèmes que moi!
    Je remercie d'avance toutes les personnes qui pourraient me dépanner

  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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8
    Par défaut
    Merci farscape pour ton lien.
    J'ai trouvé la solution à mon problème dans la faq. Je mettrai les lignes de codes demain soir.

    @++ & merci encore farscape pour ta précieuse aide

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8
    Par défaut
    Voilà le code répondant à mon problème :
    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
    17
    18
    19
    20
    21
    22
    	//Dans le .h de la FormView
    	#include "Dialog1.h"
    	#include "Dialog2.h"
    ...
    //public:
    //	CDialog1 *Dialog1;		//Mis en commentaire car ou sinon çà bug
    //	CDialog2 *Dialog2;
     
     
    	//Dans le .cpp de la FormView
    	CDialog1 *Dialog1=new CDialog1(this);	//On passe en paramètre la fenêtre de la FormView dans le constructeur de la CDialog
    	Dialog1->Create(IDD_DIALOG1,m_TabControl.GetParent());
    	CDialog2 *Dialog2=new CDialog2(this);
    	Dialog2->Create(IDD_DIALOG2,m_TabControl.GetParent());
     
    //---------------------------------------------------------------//
     
    	//Dans le .h des CDialog
    	#include "MyFormView.h"
     
    	//Dans le .cpp des CDialog
    	CMyFormView *pMyFormView = static_cast<CMyFormView*>(GetParent());

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

Discussions similaires

  1. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  2. problème pour faire un insert avec une image
    Par vbcasimir dans le forum Modules
    Réponses: 3
    Dernier message: 02/11/2005, 09h21
  3. [PDE] Problème pour obtenir un éditeur en lecture seule
    Par simsky dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 27/07/2005, 10h28
  4. [MFC]Problèmes pour orienter du texte
    Par Deedier dans le forum MFC
    Réponses: 1
    Dernier message: 25/03/2005, 16h15
  5. [MFC]Problème pour afficher une image.
    Par Deedier dans le forum MFC
    Réponses: 4
    Dernier message: 25/03/2005, 16h13

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