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 :

Comment récupérer les valeurs d'un champ..


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut Comment récupérer les valeurs d'un champ..
    Bonjour à tous,
    Je débute sur les MFC de Visual C++ et j’ai télécharger le tutoriel disponible sur ce site (MFC C++ 2008).

    J’ai crée une boite de dialogue simple avec une zone de saisie.
    J’ai affecté à cette zone une variable Cedit que j’ai appelé m_EChamp ET une variable CSting m_SChamp.

    Mon problème est le suivant :
    Je n’arrive pas à récupérer le contenu de ce champ!

    J’ai éssayé avec les instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    m_EChamp.GetWindowText(m_EChamp) ;
    GetDlgItem(IDC_EDIT)->GetWindowText(m_EChamp) ;
    m_EChamp reste toujours vide.
    Pouvez-vous m’aider ?

  2. #2
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Euh ... en effet ça ne risque pas de faire quoi que ce soit avec ce code ...

    Il faudrait commencer par savoir ce que tu veux faire ?
    1) récupérer ce qui est tapé dans le CEdit et le transférer dans le CString ?
    ou 2) injecter le contenu du CString dans le CEdit ?

    Dans le 1er cas (sous réserve de création/initialisation correcte) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_EChamp.GetWindowText(m_SChamp) ;
    Dans le 2ème cas (sous réserve de création/initialisation correcte) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_EChamp.SetWindowText(m_SChamp) ;

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    C'est justement l'instruction que j'utilise mais il ne récupère rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_EChamp.GetWindowText(m_SChamp) ;

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 464
    Par défaut
    Ca existe plus les DDX/DDV dans les MFC ?

    Il y a très très longtemps, il suffisait d'un bon Wizard, de créer des variables avec et un appel à UpdateData(TRUE) ou UpdateData(FALSE) et par magie le contrôle et la variable étaient synchronisés.

    Mais maintenant, c'est plus moderne, il faut tout faire à la main.

    Moi, je dis ça, moi je dis rien.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2011
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 6
    Par défaut
    Exact j'ai ce code déclaré aussi dans le source.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void CDlgAdvanced::DoDataExchange(CDataExchange* pDX)
    {
    CDialog::DoDataExchange(pDX);
    DDX_Check(pDX, IDC_CHECK1, m_Check1);
    DDX_Text(pDX, IDC_EDIT, m_SChamp);
    DDV_MaxChars(pDX, m_SChampp, 10);
    DDX_Control(pDX, IDC_EDIT, m_EChamp);
    DDX_Control(pDX, IDC_COMBO1, m_ComboSetSport);
    	}
    Merci de m'aider

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 464
    Par défaut
    Il faut donc juste appeler UpdateData(TRUE) pour que m_EChamp et m_SChamp soient initialisés avec les valeurs courantes des objets de la boîte de dialogue.

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx

Discussions similaires

  1. Réponses: 5
    Dernier message: 20/12/2013, 21h23
  2. Réponses: 1
    Dernier message: 11/09/2013, 10h44
  3. Réponses: 6
    Dernier message: 21/12/2009, 11h08
  4. Réponses: 2
    Dernier message: 11/12/2006, 12h38
  5. Réponses: 7
    Dernier message: 15/09/2005, 06h37

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