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 :

Saisi clavier MFC [Débutant(e)]


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
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Par défaut Saisi clavier MFC
    Bonjour les pros du MFC!
    Je débute en MFC, et j'ai un scanner de code barre tournant sous windows mobile qui, selon le constructeur, lorsqu'on appuie sur le bouton, récupère la valeur du code barre comme une simple saisie clavier.
    On m'a conseillé de ne pas afficher le résultat de cette saisie ( de le cacher ) et de récupérer la saisie dans un string ( ou CString ) et ainsi pouvoir continuer mon traitement.
    Alors voici ma question, comment récupérer une saisie clavier et stocker cette saisie dans un string ?

    Je débute en MFC mais je maitrise le C++ dans son ensemble.

    Cordialement,
    GibsonSG_76

  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
    Ne jamais prendre pour argent comptant les dires d'un fournisseur.

    Votre question n'est pas très claire car en MFC, le traitement des touches est déjà près digéré par la pompe à message et les routines de fenêtre de Windows.

    Normalement, c'est la fenêtre ayant le focus clavier qui reçoit les entrées du clavier.

    Mais avant de vous mettre dans le bain des MFC, commencez par faire une simple application console pour bien vérifier comment marche cette API.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Par défaut Re
    Merci à toi pour tes conseils, aurais tu un lien à me donner ? un bon tuto avec toutes les bases, genre affichage, saisi, après le traitement j'ai vu que s'était plus ou moins ( plutôt plus ) du C++, et si tu avais un tuto plus poussé aussi sa serait cool pour enchainer direct après avoir avalé les bases ^^.
    En te remerciant d'avance

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Par défaut Clarification de la question
    Je vais essayer de mieux expliquer mon problème.
    Alors voila je travail sur un PDA possédant un scanner de code barre, tournant sous windows mobile, programmable en MFC.
    J'ai appelé le fournisseur qui m'a expliqué qu'il fallait appuyer sur un bouton spécial qui permettait de scanner le code barre, j'ai testé sa marche.
    Et toujours selon ce fournisseur, une fois cette action réalisée, la valeur serait stockée dans le bufferClavier, récupérable avec la une fonction MFC permettant de récupérer une saisie clavier.
    Enfaite, la valeur retournée par le scanner est considérée comme une saisie clavier. Le fournisseur m'a conseillé de ne pas afficher le résultat mais de le stocker dans une variable de type string.
    Il m'a parlé vaguement d'une fonction textBox ou quelque chose comme ça, il n'était plus sur.
    Voila, ma question est donc, quelle est la fonction attendant une saisie clavier et comment récupérer cette saisie dans un string ?
    Voila, j'espère avoir été plus clair.
    Cordialement

  5. #5
    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
    Pour les liens, je sais pas trop.

    J'ai vu la FAQ VC++ de ce site et en voyant le sommaire, c'est quasiment que des MFC:
    http://cpp.developpez.com/faq/vc/

    Sinon, bouquin ou MSDN (documentation officielle de M$) :
    http://msdn.microsoft.com/en-us/library/bb737192.aspx

    La tournure de vos questions me fait pensez que vous avez une expérience du C++ plutôt orienté console.

    Les MFC sont une bibliothèque graphique et comme beaucoup de celles-ci elle utilise le paradigme "événement".
    En clair, on n'utilise pas un fonction type "scanf" pour lire les entrés claviers dans une console, mais la tuyoterie des MFC fait des tours de passe-passe pour qu'un évènement de type WM_KEYUP ou WM_KEYDOWN soit envoyé sous forme de "Message" à une fonction, dite fonction de fenêtre, correspondant à celle ayant le focus clavier. Ce message se concrétise comme une structure passée en paramètre de ces fonctions.

    Windows dispose de contrôles, ceux-ci correspondant à une fonction de fenêtre spécifique associés à des fenêtres dans le système de fenêtrage de Windows. Il existe donc des contrôles, donc des fonctions de fenêtres, qui automatiquement gèrent des messages de type clavier en affichant du texte dans une fenêtre.

    Le contrôle Windows "EDIT" est le plus simple de ceux qui gère les évènements clavier, c'est celui utilisé pour les champs de saisie des formulaires, par exemple.
    Les MFC wrappent ces contrôles Windows, pour qu'il puisse faire ces petits tours. La classe qui wrap un contrôle Windows "EDIT", c'est la classe CEdit (http://msdn.microsoft.com/en-US/libr...v=vs.100).aspx)

    Mais le plus simple est de faire un Proof Of Concept :
    - créez un projet MFC de type DialogBox
    - cliquez sur le fichier .rc du projet,
    - sélectionnez dans l'arborescence ainsi affichée, la boite de dialogue principale de l'application, cela ouvre le Designer de boite de dialogue MFC de VS
    - droppez depuis la ToolBox du Design de Formulaire un Edit Control.
    Voila, vous avez une application avec un control qui réagira aux "touches" quand le control Edit aura le focus clavier.

    On verra après comment récupérer le contenu affiché et comment prétraité ou post-traité les messages.

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Par défaut Re
    Bonjour Barcelar,
    J'ai fais le tour de plusieurs forum et tuto, j'ai compris comment marche les evenements. Quand je developpe pour un windows PC, et que je presse un bouton, j'ai un MessageBox qui apparait comme prévu.
    Mais mon problème est plus compliqué que cela..

    Je veux faire ça sur un PDA, qui possède des boutons spéciaux .
    http://www.coppernic.fr/naos.html?se...rch_highlight1
    C'est le bouton jaune a milieu.

    Je retourne donc sur mon projet Win32 smartDevice, mais la quand j'execute mon programme et que j'appuie sur le bouton jaune il ne se passe rien, à part que le scanner scan le code barre et affiche le résultat.

    Voila mon vrai problème maintenant, c'est quelle valeur définie ce bouton ?
    il n'existe pas un KEYDOWN_TRUC pour ce genre de bouton secondaire ? Ou existe t-il une méthode pour que mon programme me retourne la valeur ou le nom du bouton pressé ?

    Voila voila.. En espère que vous puissiez toujours m'aider
    Cordialement

    PS : Je n'ai, effectivement jamais essayé de faire du graphique en C++, je l'ai seulement fais en C. Mais je connais et maîtrise la notion de Classe, je programme orienté objet en JAVA et C++ depuis deux ans à l'iut info de Le Havre ^^

Discussions similaires

  1. Saisie Clavier en MFC/C++
    Par gibsonSG_76 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 09/05/2012, 08h29
  2. [PL/SQL] saisie clavier
    Par seal dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/08/2005, 11h54
  3. Simuler saisie clavier SendMessage et WM_KEYDOWN
    Par VoLc0m dans le forum Windows
    Réponses: 8
    Dernier message: 11/05/2005, 15h31
  4. Réponses: 2
    Dernier message: 21/04/2005, 12h18
  5. Saisie clavier marche pas
    Par Dokho1000 dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 11/03/2004, 12h16

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