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 :

EN_CHANGE event sur un Edit Control


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Par défaut EN_CHANGE event sur un Edit Control
    Bonjour,

    J'ai un évènement EN_CHANGE sur un Edit control qui permet à l'utilisateur de changer de page. Tout fonctionne bien jusqu'à la page 9. Lorsque l'utilisateur arrive pour entrer un nombre à deux chiffres, l'application traite le premier chiffre puis met le focus devant le premier chiffre ajoute le deuxième chiffre puis traite la demande...

    Exemple l'utilisateur entre 54. Il verra la page 5 rapidement puis la page 45.

    Cela me dérange pas qu'il voit la page 5 ce qui me dérange c'est la destination finale le 45.

    Ma question est, y a t'il moyen après un traitement dans le EN_CHANGE de l'edit de mettre le focus à la fin de ce qui est déjà entré dans le control? Propriété, code, ...? Exemple il verrait la page 5 puis la page 54... ?

    Merci de votre aide

    JP

  2. #2
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Bonjour,

    Un élément de réponse dans la FAQ...

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Je dirais que ce genre de problèmes se produit lorsqu'il y a un couplage multiple entre le controle, les variables et les actions.

    D'expérience, si tu couples un controle avec une variable, il faut accepter le comportement fourni par défaut et ne pas tenter de le modifier (comme modifier la position du curseur par exemple).

    Si tu veux le modifier, il faut alors supprimer le couplage de la variable et fait une lecture de la valeur quand tu en as besoin.

    Je me suis battu longtemps avec un ComboBox couplé avec une variable et sur lequel je voulais modifier légèrement le comportement, j'y ai renoncé.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2007
    Messages : 59
    Par défaut
    Merci de vos réponses.

    La solution que je vais préconiser est que je ne traiterai plus le changement sur le EN_CHANGE mais sur le KILLFOCUS du champs et le KeyPress "ENTER" lorsque le focus sera dans le champs.

    Merci

    JP

  5. #5
    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 jimmplan Voir le message
    Merci de vos réponses.

    La solution que je vais préconiser est que je ne traiterai plus le changement sur le EN_CHANGE mais sur le KILLFOCUS du champs et le KeyPress "ENTER" lorsque le focus sera dans le champs.

    Merci

    JP
    salut,
    c'est en effet un problème récurant en programmation windows, de manière général je ne traite le en_change que sur des champs alphanumérique qui se prêtent mieux à ce genre de traitement : exemple une zone de filtrage pour un tableau qui s'affiche en conséquence.
    pour les contrôles numériques traiter EN_CHANGE n'a pas trop de sens il vaut mieux traiter le contrôle sur la perte de focus.
    la touche entrée étant traitée pour faire passer le focus au contrôle suivant.
    comme ça dans tous les cas (clavier ou souris) le traitement est fait.

Discussions similaires

  1. Ordre des event sur un control
    Par olibara dans le forum C#
    Réponses: 4
    Dernier message: 25/01/2010, 22h56
  2. ajouter un event sur un control ?
    Par mumuri dans le forum Visual C++
    Réponses: 1
    Dernier message: 15/01/2010, 01h43
  3. Créer un [Event procédure] sur tous les controles.
    Par SeaWolf601 dans le forum IHM
    Réponses: 9
    Dernier message: 21/01/2009, 15h22
  4. Event on Close sur un User Control ?
    Par Contrec dans le forum C#
    Réponses: 32
    Dernier message: 10/10/2007, 11h33
  5. Event On Close sur un User Control
    Par Contrec dans le forum C#
    Réponses: 4
    Dernier message: 05/09/2007, 17h27

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