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 :

[MFC] retour chariot dans CEdit


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut [MFC] retour chariot dans CEdit
    Bonjour

    J'ai un prog dialog based en visual C++ 6.0 ou une fenetre contient un CEdit. Celui-ci prend le focus et un lecteur de code à barre vient mettre sa lecture dans le CEdit.
    Afin de lancer le traitement je prend le message Kill Focus du Cedit afin de lancer le traitement en fonction du code barre lu.
    Le lecteur code a barre envoi une sequence de caractere du code et un retour chariot. Ce qui est parfait (le Cedit perd le focus et le traitement se lance) mais mon probleme est que le retour chariot ou l'appui sur la touche entree me fait quitter l'application.
    Comment enlever la fermeture de l'application avec la touche entree ?

    Merci pour vos reponses

  2. #2
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 50
    Points
    50
    Par défaut
    Il faut que tu fasse un truc de ce genre...

    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
    void COutputWindow::OnCancel()
    {
    	// Cette fonction est présente et vide pour éviter de fermer la boite de dialogue
    	// lorsque la touche Echap est pressée.
    	// (Cf. http://www.codeproject.com/dialog/DisableReturnEsc.asp)
     
    }
     
    void COutputWindow::OnOK()
    {
    	// Cette fonction est présente et vide pour éviter de fermer la boite de dialogue
    	// lorsque la touche Entrée est pressée.
    	// (Cf. http://www.codeproject.com/dialog/DisableReturnEsc.asp)
     
    }
     
    void COutputWindow::OnSysCommand(UINT nID, LPARAM lParam) 
    {
    	// Cette fonction est le pendant de OnOk(), si elle n'est pas présente, 
    	// la boite de dialogue ne se ferme plus lorsqu'on appuie sur "X" (le bouton
    	// "fermer" de la caption bar)
    	// (Cf. http://www.codeproject.com/dialog/DisableReturnEsc.asp)
     
    	if ((nID & 0xFFF0) == SC_CLOSE)
        {
            //if user clicked the "X"
            EndDialog(IDOK);   //Close the dialog with IDOK (or IDCANCEL)
        }
        else
        {
            CDialog::OnSysCommand(nID, lParam);
        }
    }
    j'espere que ca t'aidera

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Points : 347
    Points
    347
    Par défaut
    merci pour ta reponse

    Ton code en effet permet de stopper la sortie de fenetre avec la touche entree , mais maintenant la touche entree ne permet plus de perdre le focus du CEdit ( normalement fait par le lecteur de code barre qui renvoit le code et un retour chariot)

    Y a t il possibilité de faire de nouveau perdre le focus du control par la touche entree ou faut il que j'essaye de changer la façon de traiter le message pour faire montraitement (peut etre un changement dans le CEdit mais il va etre lancer a chaque caratere ...)

    Merci encore!

  4. #4
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 116
    Points : 50
    Points
    50
    Par défaut
    Il faut que tu rajoutes une variable membre associée a ton CEdit (si elle n'existe pas déjà) et que tu mettes le code suivant dans la fonction OnOK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	m_myEdit.SendMessage(WM_KILLFOCUS);
    et éventuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_autreControl.SetFocus();
    si tu veux passer le focus à un autre controle...

    J'espere que je n'ecris pas de conneries, chez moi ca marche.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ces problemes sont traités dans la faq ...

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

Discussions similaires

  1. [VB.NET]Retour chariot dans un champ texte
    Par San Soussy dans le forum ASP.NET
    Réponses: 10
    Dernier message: 23/06/2005, 12h36
  2. Retour chariot dans l'inspecteur d'objet
    Par All Jinx dans le forum Composants VCL
    Réponses: 3
    Dernier message: 20/10/2004, 01h28
  3. Comment effectuer un retour chariot dans 1 JTextarea
    Par elitost dans le forum Composants
    Réponses: 2
    Dernier message: 21/06/2004, 17h18
  4. retour chariot dans un string
    Par bono dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2003, 12h17
  5. Retour chariot dans un TMemo ?
    Par Vincent PETIT dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/08/2002, 18h55

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