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 :

CComboBox::Limiter la Saisie des caractères


Sujet :

MFC

  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut CComboBox::Limiter la Saisie des caractères
    Bonjour,
    Je souhaiterais limiter la saisie des caractères dans ma combobox, comme pour un CEdit. Je n'utilise pas directement le CEdit mais une combo car suivant le choix de l'utilisateur je lui permet une saisie ou bien je lui propose une liste de choix sans possibilité de saisie.Pour cela je lui donne la propriété DROPDOWN et je suis la même méthode que pour une CEdit : je crée une classe fille et je capture le message WM_CHAR.
    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
     
    -------------
    Dans le header
    class CComboBoxExt : public CComboBox
    {
    public:
    	CComboBoxExt() ;
    protected:
        //{{AFX_MSG(CComboBoxExt)
    	 afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) ;
        //}}AFX_MSG
        DECLARE_MESSAGE_MAP()
    };
    -------------
    Dans le cpp
    CComboBoxExt::CComboBoxExt():CComboBox(){}
    BEGIN_MESSAGE_MAP(CComboBoxExt, CWnd) // Essayé aussi avec CComboBox
    	//{{AFX_MSG_MAP(CComboBoxExt)
    	ON_WM_CHAR()
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    void CComboBoxExt::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
    {
    	if( (nChar < '0' || nChar>'9') &&
    		 (nChar < 'a' || nChar>'z') &&
    		 (nChar < 'A' || nChar>'Z')  &&
    		 (nChar!=8)  //backspace 
    		 // (nChar!=32) ) //space 
    		) return ;
    	CComboBox::OnChar(nChar, nRepCnt, nFlags) ;
    }
    J'ai vérifié au débug je ne passe pas dans la fonction, pour tant la classe de base de la comboxBox est une Cwnd qui bien sur traite ce message.

    Notes au modérateur : Sinon j'avais quelques remarques à ajouter pour la faq Visual C++, est-ce que c'est possible ?
    Merci.
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  2. #2
    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
    Points : 16 075
    Points
    16 075
    Par défaut
    Salut,

    pour des remarques dans la FAQ Visual C++, n'hésite pas à poster dans l'enfilade du thread du post-it de la FAQ http://www.developpez.net/forums/viewtopic.php?t=159308

  3. #3
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    si c'est des remarques il y a un post it approprié :
    http://www.developpez.net/forums/viewtopic.php?t=201440

    si c'est pour des contributions:
    attention avant de poster ,bien lire ce qui existe deja et s'inspirer de la forme
    sur les posts existants.
    en cas de doute me consulter par MP.

  4. #4
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    pour ton probleme ça ne fonctionne pas comme ça .
    il faut subclasser l'edit de la combobox:
    il te faudra faire une classe derivée de CEdit qui filtre sur OnChar .
    une classe derivée de CCombobox et subclasser l'edit de la combo en utilisant ta classe derivée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void CMyCombo::PreSubclassWindow()
    {
    	m_MyEdit.SubclassDlgItem(1001, this);
    	CComboBox::PreSubclassWindow();
    }
    l'id de l'edit dans un combo c'est 1001.
    note : je mettrais ce post dans le post it faq.

  5. #5
    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
    Points : 16 075
    Points
    16 075
    Par défaut
    Citation Envoyé par farscape
    salut,
    si c'est des remarques il y a un post it approprié :
    http://www.developpez.net/forums/viewtopic.php?t=201440

    si c'est pour des contributions:
    attention avant de poster ,bien lire ce qui existe deja et s'inspirer de la forme
    sur les posts existants.
    en cas de doute me consulter par MP.
    ah voui oups ... je m'a trompé


  6. #6
    Membre confirmé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Points : 646
    Points
    646
    Par défaut
    Salut,

    Tout d'abord merci pour cette solution.
    Il me semble que les contributions pour la prochaine FAQ on été donnée plus haut :
    http://www.developpez.net/forums/viewtopic.php?t=159308 Wink
    Le lien que tu viens de citer c'est plutot pour poster des commentaires qualitatifs

    Sinon, est-ce moi qui doit rajouter la mention "résolu" ?

    Bye.
    Selso.
    Ingénieur/CdP développement systèmes embarqués &

  7. #7
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    Citation Envoyé par bizulk
    Salut,

    Tout d'abord merci pour cette solution.
    Il me semble que les contributions pour la prochaine FAQ on été donnée plus haut :
    http://www.developpez.net/forums/viewtopic.php?t=159308 Wink
    Le lien que tu viens de citer c'est plutot pour poster des commentaires qualitatifs

    Sinon, est-ce moi qui doit rajouter la mention "résolu" ?

    Bye.
    oui ,avec le bouton résolu

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

Discussions similaires

  1. Interdire la saisie des caractères
    Par ahmedpa dans le forum JSF
    Réponses: 4
    Dernier message: 26/12/2012, 16h09
  2. [Débutant] Empêcher la saisie des caractères dans un textBox
    Par amine1980 dans le forum C#
    Réponses: 1
    Dernier message: 03/10/2012, 00h13
  3. [RegExp] Limitation de saisie de caractères
    Par nawal106 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/02/2011, 12h40
  4. saisie des caractéres arabe dans un jTextField
    Par RouRa22 dans le forum Composants
    Réponses: 12
    Dernier message: 08/09/2008, 09h57
  5. Limiter le nbre des caractères
    Par anouar_chaieb dans le forum IHM
    Réponses: 3
    Dernier message: 06/06/2008, 14h15

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