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 :

Bug de RichEdit ?


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut Bug de RichEdit ?
    Bonjour,

    Je souhaite afficher des informations dans une dialogBox, puis après dans une FormView.
    Les informations sont bien affichées dans la dialogBox, mais ne s'affichent pas dans la FormView.

    Pourtant, l'affichage dans la DialogBox montre que j'ai bien mis AfxInitRichEdit2 dans InitClass, alors pourquoi l'affichage ne se fait pas après ?
    Les informations sont globales, donc connues de tout le monde a priori ...

    D'où peut bien provenir une telle erreur ?

    Merci d'avance pour vos réponses éclairées et éclairantes...

    PS : Voici les deux codes, le premier pour la dialogBox, le deuxième pour le FormView

    Les deux fonctions ont, dans l'entête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    typedef struct {
    	CString identifiant;
    	CString passwd;
    	CString droit;
    	int type_test;
    	CString reference;
    }donnees;
    extern donnees compte;
    DialogBox :
    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
     
    CDlgMasque::CDlgMasque(CWnd* pParent /*=NULL*/)
    	: CDialog(CDlgMasque::IDD, pParent)
    	, m_srefmasque(_T(""))
    	, m_CNom(_T(""))
    {
    	m_CNom = compte.identifiant;
    }
     
    CDlgMasque::~CDlgMasque()
    {
    }
     
    void CDlgMasque::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	DDX_Text(pDX, IDC_REFMASQUE, m_srefmasque);
    	DDX_Control(pDX, IDC_NOM, m_ctrlNom);
    	DDX_Text(pDX, IDC_NOM, m_CNom);
    }
    FormView :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    CMasque_Form_View::CMasque_Form_View()
    	: CFormView(CMasque_Form_View::IDD)
    	, m_CIdentif(_T(""))
    	, m_CType_Test(_T(""))
    	, m_CReference(_T(""))
    {
    	m_bStartStop = FALSE ;
    	srand( (unsigned)time( NULL ) );
    	m_CReference = compte.reference;
    	m_CIdentif = compte.identifiant;
    	if (compte.type_test == 0)
    		m_CType_Test = "Masque";
    	if (compte.type_test == 1)
    		m_CType_Test = "Soupape tarée";
    	if (compte.type_test == 2)
    		m_CType_Test = "Détendeur";
    }
     
    CMasque_Form_View::~CMasque_Form_View()
    {
    }
    void CMasque_Form_View::DoDataExchange(CDataExchange* pDX)
    {
    	CFormView::DoDataExchange(pDX);
    	DDX_Control(pDX, IDC_IDENTIF, m_ControleIdentif);
    	DDX_Control(pDX, IDC_TYPETEST, m_ControleTypeTest);
    	DDX_Control(pDX, IDC_REFERENCE, m_ControleReference);
    	DDX_Text(pDX, IDC_IDENTIF, m_CIdentif);
    	DDX_Text(pDX, IDC_TYPETEST, m_CType_Test);
    	DDX_Text(pDX, IDC_REFERENCE, m_CReference);
    }
    Personnellement, je ne vois pas la différence ...

  2. #2
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Personne n'a d'idées, par hasard ?
    J'ai toujours pas trouvé comment faire...
    Si quelqu'un pouvait m'aider.

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    [edit] erf, j'avais pas vu un truc, j'ai écris des bêtises. Je réfléchi [/edit]

  4. #4
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    As-tu vérifié que l'exécution passe bien par le DataExchange de la FormView? (avec un break point)

  5. #5
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Merci pour ta réponse

    Oui, et justement, il n'y passe pas, j'avais oublié de le signaler ...
    Comment se fait-ce ? N'est-ce pas automatique au démarrage ? Comme dans ma dialogobox en fait ?
    Ou alors j'ai vraiment rien compris du tout à la vie ...

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jacklafrip
    Oui, et justement, il n'y passe pas, j'avais oublié de le signaler ...
    Comment se fait-ce ? N'est-ce pas automatique au démarrage ? Comme dans ma dialogobox en fait ?
    Ou alors j'ai vraiment rien compris du tout à la vie ...
    En fait, la création d'une CView (CFormView) est différente de celle d'une CDialog. Pour la fromview, il faut intercepter le HandleInitDialog et ne pas oublier de le rediriger vers la classe mère. Dans ton cas, cela devrait ressembler à quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // CMasque_Form_View.h
    [...]
    afx_msg LRESULT HandleInitDialog(WPARAM, LPARAM);
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // CMasque_Form_View.cpp
    [...]
    LRESULT CMasque_Form_View::HandleInitDialog(WPARAM wParam, LPARAM lParam)
    {
       LRESULT lr = BaseClass::HandleInitDialog(wParam, lParam); //remplacer BaseClass par la class dont hérite ta propre classe
       // tes initialisations ici
     
       return lr;
    }
    Hope it helps.

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

Discussions similaires

  1. determiner les ligne visible ds un RichEdit
    Par hhfr dans le forum Composants VCL
    Réponses: 4
    Dernier message: 19/09/2002, 18h15
  2. Enregistrer un RichEdit dans un .Txt
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/08/2002, 11h52

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