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 :

Pb mfc visual c++ 6


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut Pb mfc visual c++ 6
    Salut,
    Je débute en projet graphique sous Windows (mfc).
    J'ai consulté les divers tutoriaux. Or, il y a un point que je ne comprend pas.

    J'ai réalisé une boite de dialogue muni d'un TabControl qui comporte une boite de dialogue par onglet.

    Je veux récupérer la valeur d'une EditBox d'une boite de dialogue pour la mettre dans l'EditBox d'une autre boite de dialogue;

    //Voici le code de: http://www.functionx.com/visualc/dialog/dialog2.htm
    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
    void CExoTransferDlg::OnCreateAccount() 
    {
    // TODO: Add your control notification handler code here
    CDialog2 Dlg;
     
    if( Dlg.DoModal() )
    {
    UpdateData();
    m_FirstNameDlg1.Format("%s", Dlg.m_FirstNameDlg2);
    m_LastNameDlg1.Format("%s", Dlg.m_LastNameDlg2);
    m_FullNameDlg1.Format("%s %s", Dlg.m_FirstNameDlg2,
    Dlg.m_LastNameDlg2);
    UpdateData(FALSE);
    }
    }
    Cela marche bien.
    Cependant, lorsque je veux éxécuter cette fonction à partir de la classe de mon TabCtrl. (l'application plante)

    fichier Tab.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include "ExoTransferDlg.h"
    ....
    CExoTransferDlg test;
    test.OnCreateAccount() ;
    (Or cela marche avec d'autre fonctions de cette même classe)
    (Je me demande si cela ne provient pas de la fonction UpdateData())

    J'espère avoir été clair.
    Merci d'avance.


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

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    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 288
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    ça plante où exactement? Quelle ligne? Quel est le message d'erreur?

  3. #3
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    salut

    je crois qu'il faut que tu appelles la méthode "Create" avant d'utiliser ta méthode car les contrôles n'ont pas été intialisés

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut
    Tout d'abord, merci d'avoir répondu.
    En fait, la fonction plante à partir du moment où j'utilise les données:

    Par exemple, si je commente toute la fonction sauf la fonction UpdateData(), l'application plante.

    soit:
    De même avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_LastNameDlg1.Format("%s", Dlg.m_LastNameDlg2);
    J'ai essayé de créer la boîte de dialog différemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CAdd_Aircraft_Dialog *m_pDialog = new CAdd_Aircraft_Dialog(this);
    	m_pDialog->Create(CAdd_Aircraft_Dialog::IDD);
    	m_pDialog->ShowWindow(SW_SHOW);
    Mais ça ne change rien.
    Cela doit provenir de la création. Je dois oublier d'initialiser un paramètre.

    PS: Pour r0d, l'application plante, lorsque je valide la première boite de dialogue via un bouton (au moment où les données doivent se transférer entre les deux boites de dialogues). Le debugger se lance dans la fonction UpdateData().

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut
    En fait, j'ai un problème de conception. Cela n'est pas très clair dans ma tête.

    Si j'execute la fonction dans ma classe. Cela marche bien.
    Ma seconde boite de dialogue (onglet) hérite bien de la valeur de la première.

    Cependant, ma boite de dialogue s'execute dès le début de mon application.
    Or, je veux qu'elle s'éxecute seulement lorsque je suis sur un onglet donné.

    C'est pourquoi, je voudrais exécuter ma boite de dialogue à partir d'une autre classe. En l'occurrence, dans la classe qui gère mon TabCtrl avec la fonction respective OnSelChange().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (GetCursel ==4)
       {CExoTransferDlg test;
        test.OnCreateAccount() ;
       }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 15
    Par défaut
    En fait, cela provenait de la création de mes boites de dialogue.

    Je remercie Farscape.

  7. #7
    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
    Par défaut
    Citation Envoyé par djbobo27
    En fait, cela provenait de la création de mes boites de dialogue.

    Je remercie Farscape.
    ben ça alors, j'ai rien dit moi dans ce post

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est les ondes ... t'agis à distance

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

Discussions similaires

  1. [MFC][Visual 2005] Problème CList
    Par samtheh dans le forum MFC
    Réponses: 1
    Dernier message: 17/06/2006, 23h26
  2. [MFC] [Visual.NET] Question sur l'impression
    Par LapinGarou dans le forum MFC
    Réponses: 8
    Dernier message: 31/03/2006, 08h51
  3. [MFC][Visual C++ 6]Travail sur les dates
    Par tus01 dans le forum MFC
    Réponses: 6
    Dernier message: 31/01/2006, 21h32
  4. [MFC Visual C++]conseil sur affichage graphiques
    Par C++beginner dans le forum MFC
    Réponses: 6
    Dernier message: 10/01/2006, 06h47
  5. [MFC] Visual .NEY, MFC71, windows 2000/XP
    Par romeo9423 dans le forum MFC
    Réponses: 1
    Dernier message: 31/08/2005, 19h54

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