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 :

Valeur de CEdit


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut Valeur de CEdit
    Salut,

    Lorsqu'on configure une EditBox avec un SpinControl, on la configure en nombre et ensuite les GetWindowtext, GetWindow.. ne fonctionnent plus afin de récupérer la valeur dans l'EditBox...

    Quelqu'un aurait-il une idée...

  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
    Par défaut
    salut,
    je ne vois pas pourquoi ça ne fonctionnerait plus ...
    une fenêtre reste une fenêtre et sa propriété texte est toujours accessible.
    il y a certainement autre chose.
    comment procèdes tu ?

  3. #3
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    J'ai créé une fonction EN_CHANGE associé à la fenêtre Edit et voilà ce qui il a dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CDataFile* File= new CDataFile("MonFichier.ini");	
    char  *stopstring;
    CString Value;
    int NumValue;
     
    m_MyEdit.GetWindowText(Value);
     
    NumValue = strtoul(Value, &stopstring, 10);
     
    File->WriteProfileInt("MySection","MyKey",NumValue);
     
    delete(File);
    ça ne me génère aucune erreur mais ça plante...

  4. #4
    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
    ca plante ou ?

  5. #5
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    A la ligne GetWindowText

  6. #6
    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
    que vaut myEdit ?
    est-il initialisé ? a quel moment fais-tu ca ?

  7. #7
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    En fait j'ai associé un SpinControl à l'EditBox, et dès que j'incrémente la valeur dans l'EditBox à l'aide de ce SpinControl, je rentre dans la fonction EN_CHANGE de l'EditBox où il y a le code que j'ai posté plus haut.

    Ai-je répondu à ta question ?

  8. #8
    Membre expérimenté Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Par défaut
    m_myEdit est il bien associé à l'édit ??
    tu peux contrôler que le hwnd a une valeur qui est valide... ainsi que le reste des données membre...

  9. #9
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    En fait, m_MyEdit est l'EditBox, et le SpinControl est bien lié (je pense) car lors de l'exécution il modifie bien la valeur contenu dans l'EditBox, et c'est là, une fois que l'editBox change, qu'on rentre dans la fonction EN_CHANGE de l'EditBox, où il y a le code posté plus haut...

    Pour ce qui est de vérifié si hwnd et le reste des données membres a une valeur valide, je ne pourrai le faire que demain matin...

    Merci pour le coup de main...

  10. #10
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Lorsque le déroulement du programme arrive à l'instruction GetWindowText, c'est à dire qu'il ne l'a pas encore exécuter, le m_hWnd et tout les parametres sont à 0... ensuite ça plante...

  11. #11
    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
    salut,
    un grand classique....
    comment tu as rajouté cette variable ? manuellement ou avec l'assistant ?
    une variable est associée à son identifiant dans les ressources par une ligne dans le bloc dodataexchange.
    c'est le cas ?
    on peut voir cette portion de code ?

  12. #12
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    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
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CControle_ConnecteurMVDlg)
    	DDX_Control(pDX, IDC_COMBO5, m_Reflection);
    	DDX_Control(pDX, IDC_EDIT3, m_Seuil);
    	DDX_Control(pDX, IDC_EDIT2, m_NbProfils);
    	DDX_Control(pDX, IDC_EDIT4, m_ShutterTime);
    	DDX_Control(pDX, IDC_EDIT1, m_NumChamp);
    	DDX_Control(pDX, IDC_COMBO6, m_Trigger);
    	DDX_Control(pDX, IDC_COMBO4, m_ChoixProduit);
    	DDX_Control(pDX, IDC_COMBO3, m_Champ);
    	DDX_Control(pDX, IDC_COMBO2, m_ResProfil);
    	DDX_Control(pDX, IDC_BUTTON5, m_PosHomeMoteur);
    	DDX_Control(pDX, IDC_BUTTON4, m_InitParamlaser);
    	DDX_Control(pDX, IDC_SPIN3, m_NumShutter);
    	DDX_Control(pDX, IDC_SPIN2, m_NumSeuil);
    	DDX_Control(pDX, IDC_SPIN1, m_NumProfils);
    	DDX_Control(pDX, IDC_BUTTON3, m_Acquisition);
    	DDX_Control(pDX, IDC_BUTTON2, m_Deconnexion);
    	DDX_Control(pDX, IDC_BUTTON1, m_Connexion);
    	DDX_Control(pDX, IDC_SBARCTRL1, m_StatusBar);
    	DDX_Control(pDX, IDC_IMAGE1, m_VisuProdOK);
    	DDX_Control(pDX, IDC_IMAGE2, m_VisuProdDefaut);
    	DDX_Control(pDX, IDC_TEXTBOX1, m_InfoProg);
    	//}}AFX_DATA_MAP

    J'ai donc lié le Spin3 à l'Edit4, avec l'assistant...

    Aurai-je fais une erreur ?

  13. #13
    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
    oui,je ne vois nulle part de m_MyEdit dans ce bloc donc ce n'est pas étonnant....
    tu as vu ce post de la faq sur les spin:
    http://c.developpez.com/faq/vc/?page...pinUpAutoBuddy

  14. #14
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    C'est vrai excuse moi dans le post j'ai généralisé le nom, mais en fait ce n'est pas m_MyEdit, mais m_ShutterTime et pour le Spin c'est m_NumShutter..
    Désolé pour la confusion, mais je me suis justement servi de ta faq pour les liés et ça marche nickel c'est juste lorsque je faire getwindowtext...

    C'est pour ça que je ne comprends pas car ça compile bien pourtant...

  15. #15
    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
    alors il n'y a pas 36 solutions:
    soit dans la ressource pour ce controle ce n'est pas IDC_EDIT4 son identifiant.
    soit dans la fonction OnInitDialog tu as enlevé l'appel de cette fonction à la classe de base ,ou tu as enlevé le UpdateData(FALSE);

  16. #16
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    C'est bien Edit4 l'identifiant, par contre je ne trouve pas updatedata(false), ou doit-il etre ?

  17. #17
    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
    il ne te manquerait pas plutot ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    BOOL CDlgAdvanced::OnInitDialog() 
    {
        CDialog::OnInitDialog(); // cette ligne existe bien ????
    ....
    }

  18. #18
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Et oui elle y est bien...

    Des trucs comme ça moi ça me tue, parce que vu que l'application plante il est impossible de savoir quel est son problème...


  19. #19
    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
    bon ce n'est pas normal tout ça ...
    met un point d'arret dans dodataexchange
    lance ta dialog ,tu dois rentrer dans cette fonction.
    fait avancer pas a pas .
    tu dois passer sur la ligne concernant cet edit IDC_EDIT4
    apres cette ligne le controle doit avoir sa donnée membre m_hWnd non nulle
    sinon tu as une assertion d'erreur.
    mais à mon avis tu n'y passes pas ou alors on parle d'une autre variable...


  20. #20
    Membre éclairé Avatar de Fred2209
    Inscrit en
    Octobre 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 310
    Par défaut
    Concernant cet Edit4, m_hWnd est bien non nulle, et aucune erreur sur les données membres...
    J'ai fait de même sur le spin associé, idem...

    Ne penses-tu pas que cela pourrait venir du fait que j'ai coché certaines cases dans les propriétés de cet Edit et de ce Spin, ou alors de la Fonction de l'Edit : EN_CHANGE, est-ce la plus appropriée pour aller récupérer le texte dans cet Edit à chaque changement et le sauvegarder ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Récupérer valeur de type float d'un Cedit
    Par Trunks dans le forum MFC
    Réponses: 4
    Dernier message: 03/12/2014, 22h51
  2. Valeur d'un CEDIT : premier caractère seulement
    Par Matt112 dans le forum MFC
    Réponses: 3
    Dernier message: 23/05/2010, 16h59
  3. recuperer la valeur de CEdit
    Par Djawida dans le forum MFC
    Réponses: 3
    Dernier message: 27/05/2009, 13h22
  4. changement valeur de CEdit (s)
    Par lucky dans le forum MFC
    Réponses: 2
    Dernier message: 01/12/2006, 15h39
  5. Réponses: 4
    Dernier message: 26/05/2006, 19h02

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