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 :

Filtrer les caractères saisis dans un CEdit


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut Filtrer les caractères saisis dans un CEdit
    Bonjour,

    Pour filtrer les caractères saisis dans un CEdit d'après ce qui j'ai vu sur :
    http://cpp.developpez.com/faq/vc/?pa...eau-d-un-CEdit

    il faut rajouter:

    dans le .h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
    dans le .cpp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     BEGIN_MESSAGE_MAP(CMyBDlg, CDialogEx)
    	ON_WM_CHAR()
            ...
    END_MESSAGE_MAP()
    dans le .cpp aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     void CMyBDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    if (nChar=='a')  
     
    AfxMessageBox("Touche a enfoncée");
     
    CCMyBDlg::OnChar(nChar, nRepCnt, nFlags); 
    }
    mais j'e vois pas le message "Touche a enfoncée" quand je clique sur le bouton 'a' !

    Alors je ne sais pas ce qu'il manque pour que ça marche ?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    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 488
    Par défaut
    Vous confondez CDialogEx et CEdit.
    Il va sans dire qu'il faudra générer une classe édit dérivée de la classe CEdit

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Citation Envoyé par bacelar Voir le message
    Vous confondez CDialogEx et CEdit.
    ah désolé ! quelle erreur !

    Maintenant c'est bon j'ai généré la classe CEditPlus dérivée de la classe CEdit dans le

    CEditPlus.h:
    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
     
    #pragma once
    // CEditPlus
     
    class CEditPlus : public CEdit
    {
    	DECLARE_DYNAMIC(CEditPlus)
     
    public:
    	CEditPlus();
    	virtual ~CEditPlus();
     
    protected:
    	DECLARE_MESSAGE_MAP()
    		afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
    };
    CEditPlus.cpp:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    // EditPlus.cpp*: fichier d'implémentation
    //
     
    #include "stdafx.h"
    #include "MyBDlg.h"
    #include "EditPlus.h"
     
     
    // CEditPlus
     
    IMPLEMENT_DYNAMIC(CEditPlus, CEdit)
     
    CEditPlus::CEditPlus()
    {
     
    }
     
    CEditPlus::~CEditPlus()
    {
    }
     
     
    BEGIN_MESSAGE_MAP(CEditPlus, CEdit)
    	ON_WM_CHAR()
    END_MESSAGE_MAP()
     
    void CEditPlus::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
    {
    if (nChar=='a')  
     
    AfxMessageBox("Touche a enfoncée");
     
    CEditPlus::OnChar(nChar, nRepCnt, nFlags); 
    }
     
    // Gestionnaires de messages de CEditPlus
    Excusez moi mais maintenant comment j'utilise la classe CEditPlus que j'ai crée ?

    Je rajoute ça dans CMyBDlg.h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CEditPlus *m_editNumeroDeBonAAnnuler;
    Et puis ?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    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 488
    Par défaut
    C'est le rôle du Class Wizard sur la boite de dialogue qui s'occupera de toute la tuyauterie.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Par défaut
    Citation Envoyé par bacelar Voir le message
    C'est le rôle du Class Wizard sur la boite de dialogue qui s'occupera de toute la tuyauterie.
    Mais j'ai fait ce que j'ai mentionné dans le message précédent et j'intercepte rien pour l'instant !

    je ne sais pas où est le problème? Je pense qu'il faut rajouter quelque chose mais je ne sais pas c'est quoi ?!

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    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 488
    Par défaut
    Pouvez-vous poster une version minimale qui reproduit le problème ?

Discussions similaires

  1. filtrer un dataCombo selon les caractères saisis
    Par modafine dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 16/12/2008, 15h27
  2. Controle des caractères saisis dans CEdit
    Par FST_PFE dans le forum MFC
    Réponses: 8
    Dernier message: 10/09/2008, 15h15
  3. Réponses: 6
    Dernier message: 14/07/2005, 14h25
  4. Réponses: 8
    Dernier message: 19/05/2005, 16h03
  5. Réponses: 2
    Dernier message: 21/03/2005, 09h03

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