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. #21
    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
    non,
    si m_hWnd est non nulle ,il doit l'etre aussi dans OnChange...
    si c'est pas le cas :
    1) le controle a ete detruit.
    2) on ne parle pas de la meme variable (verifier son adresse dans le debugger).
    3) va falloir chercher mulder ,car la verité est ailleurs

  2. #22
    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
    Ecoute, je te remercie quand même pour tout ton temps passé à m'aider et je pense que je vais faire sans le Spin, et on devra rentrer les valeurs en les tapant manuellement...


    Tanpis pour moi...


  3. #23
    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
    Citation Envoyé par farscape
    non,
    si m_hWnd est non nulle ,il doit l'etre aussi dans OnChange...
    si c'est pas le cas :
    1) le controle a ete detruit.
    2) on ne parle pas de la meme variable (verifier son adresse dans le debugger).
    3) va falloir chercher mulder ,car la verité est ailleurs
    En fait, dans OnChange le m_hWnd est nulle donc c'est surement que le controle à été détruit, comme tu l'a dis...

    Mais comment y remédier ?

  4. #24
    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
    tu peux mettre ta dialogue dans un petit projet externe et nous le poster ?
    ou le projet si c'est pas confidentiel...
    je sens que ça doit etre gros comme une maison ....

  5. #25
    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
    Je suis désolé, mais je ne suis pas autorisé, c'est un projet industriel...

    Pourquoi, c'est bête parceque comme décrit dans ton tuto j'ai lié un spin à une editbox et je souhaite juste récupérer le texte dans l'edit box à chaque changement, et çà plante donc car dans la fonction change le m_hWnd = 0...

    Que voulais tu dire par le controle est détruit ?

  6. #26
    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 alors en fait c’était tout con,
    Le message EN_CHANGE est envoyé à la fenêtre indépendamment de toute création de variable sur le contrôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ON_EN_CHANGE(IDC_EDITONE, OnChangeEditone)
    La variable contrôle est valide (m_hwnd!=NULL) si la variable est attachée au contrôle Windows.
    Ce traitement est fait par le premier UpdateData soit ici par la fonction CDialog ::OnInitDialog.
    Seulement avant que UpdateData arrive le spin change la valeur dans l’edit et met zéro.
    Donc avant que la variable soit prête…
    La solution est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if(!m_Edit.m_hWnd) return;
    Tout en prenant quand même conscience que pour chaque caractère saisi ou modifié EN_CHANGE est appelée et donc le traitement associé.
    Moi j’aurai peut être placé le traitement sur la perte de focus du contrôle EN_KILLFOCUS.
    Ou sur l’accepte de la dialogue…

  7. #27
    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 essayé avec KILL_FOCUS de l'Edit, mais lorsque j'incrémente l'Edit avec le spin je ne rentre pas dans la fonction KILL_FOCUS...

  8. #28
    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
    kill focus c'est quand le controle perd le focus uniquement ,
    le traitement sera effectué lorsqu'on change de contrôle....
    mais tu as compris le probléme précédent?

  9. #29
    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
    Citation Envoyé par farscape
    Bon alors en fait c’était tout con,
    Le message EN_CHANGE est envoyé à la fenêtre indépendamment de toute création de variable sur le contrôle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      ON_EN_CHANGE(IDC_EDITONE, OnChangeEditone)
    La variable contrôle est valide (m_hwnd!=NULL) si la variable est attachée au contrôle Windows.
    Ce traitement est fait par le premier UpdateData soit ici par la fonction CDialog ::OnInitDialog.
    Seulement avant que UpdateData arrive le spin change la valeur dans l’edit et met zéro.
    Donc avant que la variable soit prête…
    La solution est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if(!m_Edit.m_hWnd) return;
    Tout en prenant quand même conscience que pour chaque caractère saisi ou modifié EN_CHANGE est appelée et donc le traitement associé.
    Moi j’aurai peut être placé le traitement sur la perte de focus du contrôle EN_KILLFOCUS.
    Ou sur l’accepte de la dialogue…

    En fait, je pense avoir compris mais ou dois-je mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      if(!m_Edit.m_hWnd) return;

  10. #30
    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
    en première ligne de la fonction OnChangeEditone ...
    (m_edit c'est ton contrôle edit évidemment ...)

  11. #31
    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
    Trop fort, c'est super depuis le temps que je galère dessus je suis trop content...

    Vraiment merci Farscape...

  12. #32
    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
    en fait j'ai trouvé tout de suite en faisant le test moi même...

  13. #33
    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
    OK d'accord...

    Bien merci encore...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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