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 intercepter la touche entrée au niveau d’un CEdit


Sujet :

MFC

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Comment intercepter la touche entrée au niveau d’un CEdit
    Bonjour, je suis nouveau developpeur en Visual C++. J'ecris suite au message de Farscape du 8 avril 2005 qui traite deja de ce sujet.
    Cependant j'aurai besoin d'un peu d'eclaircissement pour savoir comment effectuer un traitement une fois que j'ai tappe sur la touche entree.

    En effet, j'arrive a intercepter le message WM_GETDLGCODE en creant une classe derivee de Cedit. Je ne sais pas par contre comment effectuer mon traitement dans ma Cdialog.
    Pour etre clair, ou dois-je tapper mon traitement que je souhaite effectuer sur mon contenu de mon edit une fois que j'ai frappe sur la touche entree?

    Merci d'avance pour votre aide

    Cyril Carpentier

  2. #2
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    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 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut Re: Comment intercepter la touche entrée au niveau d’un CEdi
    Citation Envoyé par cyberaoul
    Pour être clair, ou dois-je taper mon traitement que je souhaite effectuer sur mon contenu de mon edit une fois que j'ai frappé sur la touche entrée?
    Et bien je te conseille de créer une méthode "private" dans ta classe. Cette méthode sera appelée lorsque le message est intercepté et elle effectuera le traitement désiré.

    Hope it helps.

    r0d.

  3. #3
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Waou, merci pour la reponse si rapide, mais... dans quelle classe dois-je creer cette methode? CmyDlg ou Cmyedit?

    Cyril

    je n'qi pqs de clqvier frqncqis, desole pour les fautes...

  4. #4
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    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 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par cyberaoul
    dans quelle classe dois-je creer cette methode? CmyDlg ou Cmyedit?
    Si j'ai bien compris ton problème, c'est dans Cmyedit. En fait, ce genre de question est récurrente, surtout en p.o.o., et il suffit de se poser les 2 questions: "la fonction que je vais implémenter va modifer quoi?" et "cette fonction a besoin de quoi?". La réponse à la 1ere question va te dire où mettre ta fonction. Par exemple, si elle ne va modifier que ton Cmyedit, alors tu la met dans Cmyedit. La réponse à la 2eme question de dira quels sont les données que tu vas devoir passer en paramètre.

    Hope it helps.

    Citation Envoyé par cyberaoul
    je n'qi pqs de clqvier frqncqis, desole pour les fautes...
    Ok, je comprends mieux l'absence d'accentuation

  5. #5
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Pour repondre a la question, mon traitement existe deja dans la fenetre dialog. Je l'avais deja implementer dans un bouton de validation pour essayer. Mais voila, j'ai beaucoup de Cedit, et basculer entre saisie clavier et souris pour valider le bouton, ce n'est pas possible.

    Je me rend compte que ce je change le probleme:
    Je pourrais reussir en implementant le traitement dans Cmyedit. A ce moment la, je pourrais tester les caracteres dans Cmyedit des que je les tape et ainsi lancer le traitement un fois le Retour Chariot frappe. La question est maintenant de savoir comment je recupere la valeur du caractere que je viens de taper.
    Rectification:
    En fait, le caractere, je peux le savoir en recuperant la variable Cstring liee a mon edit, mais pour une frappe de la touche entree, je ne sais pas comment faire!


    Cyril

    P.S. Pour info, le code sur lequel je me suis base se trouve sur le lien suivant:
    http://www.developpez.net/forums/vie....php?p=1810922

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Trouver!!
    En fait, ta remarque sur mes fotes d'orttograffe m'a donne l'idee de refaire une recherche dans le forum avec les mots clees: "entrée edit", plutot que "entree edit" comme ce que j'avais recherche precedemment.
    Et en effet, le probleme avait deja etait pose et resolu!!

    Merci de l'aide en tout cas

    Cyril

    P.S. C'est bizarre d'ailleurs que le moteur de recherche ne recherche pas les mots avec et sans accent. Google le fait je pense.

  7. #7
    Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Oups... J'ai parle trop vite...

    Pour lancer mon traitement a partir de ma Cmyedit, j'ai besoin de ma variable Cstring associe a mon edit que j'ai defini public dans ma Cmydialog. Or, j'arrive pas a y acceder!
    La question est alors: comment acceder a une variable d'une la boite de dialogue (a partir de Cmyedit)

    C'est une question auquelle j'ai ete souvent confronte, mais que j'ai toujours reussi a contourner. Je suis sur que c tout con, mais j'ai pas encore trouver...

  8. #8
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 266
    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 266
    Points : 6 688
    Points
    6 688
    Billets dans le blog
    2
    Par défaut
    Si Cmyedit hérite de la classe CEdit, elle possède une méthode (héritée de CObject d'ailleurs, si je ne m'abuse) qui s'appelle: GetWindowText(); Tu lui passes une CString en paramètre, et voilà, le tour est joué

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

Discussions similaires

  1. Comment gérer ma touche entre
    Par solaar dans le forum VBA Access
    Réponses: 0
    Dernier message: 09/07/2010, 17h09
  2. Comment intercepter une touche clavier avec un projet GUI
    Par guitz2fr dans le forum Débuter
    Réponses: 12
    Dernier message: 24/06/2008, 22h50
  3. [WebForms]Comment utiliser la touche entrée pour valider un formulaire ?
    Par yonialhadeff dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 10/05/2006, 13h29

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