Probleme Vue/dialog avec MFC

Résolu
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 16 nov. 2006 à 15:35
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 - 17 nov. 2006 à 14:25
Salut, avec MFC :
J'ai une vue parent et un dialog non modal enfant.
J'essaye d'appeler une méthode du parent depuis le dialog enfant.

// MyModelessDialog.h
class MyModelessDialog : public CDialog
{
    // Le constructeur prend CView* pParent
    // blabla
}





// MyView.h


#include "MyModelessDialog.h"
class MyView : public CFormView
{
    // blabla
    void uneFonction();


    MyModelessDialog* m_pDialog; 
}



// MyView.cpp

Dans OnInitialUpdate je crée le dialog enfant.
Tout va bien.



// Et dans le MyModelessDialog.cpp,
sur un click boutton par exemple :
Impossible de caster le parent de CView* en MyView*
pour pouvoir appeler MyView::uneFonction();


Je pense que c'est un problème d'include mais avez vous
une idée ?
Merci pour vos réponses.

4 réponses

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
17 nov. 2006 à 08:53
Dans ton .cpp il faut inclure ton .h de la view, si c'est un Problème de compilation. L'autre solution est d'envoyer un message au parent comme quoi tu as fait une action dans ta dialogBox
louis14
3
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
17 nov. 2006 à 13:33
Le problème est que si je met
#include "MyView.h" dans le cpp du dialog
j'ai des erreurs de compilation du aux collisions d'includes, donc le compilateur ne reconnait pas la classe MyView mais seulement CView.
J'imagine que ça vient du système des headers précompilés.
Je vais essayer les messages, a voir...
0
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
17 nov. 2006 à 13:55
ajoute #pragma once dasn ton header

louis14
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
17 nov. 2006 à 14:25
J'ai réussi à compiler, je ne le savait pas mais l'ordre des include est important. En effet il fallait que je mette l'include "MyView.h" avant l'include "MyModelessDialog.h" dans le cpp du dialog, puisque MyView.h inclue lui-même MyModelessDialog.h.
Ouf, c'était plus ou moins logique finalement.
0
Rejoignez-nous