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 :

[evenements] en c++ : comment ca marche ?


Sujet :

MFC

  1. #1
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut [evenements] en c++ : comment ca marche ?
    Bonjour,

    j'aimerai pouvoir gérer les evenements au claver en C++, je n'ai pas trouver comment le faire dans les tutoriaux.
    Pouvez vous me donner un exemple ou un tutorial qui me le montre ?

    merci

    mavina

  2. #2
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Il n'y a rien en C++ standard pour faire ceci. Utilises-tu une bibliothèque? Si oui peut-être qu'elle gère les entrées claviers. Va voir sur ta doc.

    Sinon on peut citer pour Windows l'API Win32, ou si tu cherches la portabilité SDL, wxWidget et j'en passe. Regarde aussi sur ce site et ce forum.

    A+

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    donc je dois trouver une bibliotheque car c++ ne le gere pas en standard ?
    Je débute un peu en C++ donc que me conseillez vous comme bibliothèque ? Comment l'instaler et avoir la documentation ?
    Je programme sous visual C++...
    Mon but est de récupérer ce qui est écrit au clavier et de l'enregistrer dans un fichier.
    Merci d'avance

    mavina

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Souvent, les bibliothèque sui gèrent ainsi un clavier gèrent aussi du graphique :

    http://c.developpez.com/faq/cpp/?pag...GENERALITE_gui

    A part ça, si tu veux un programme en mode console, il y a la bibliothèque curses, et si tu te moques de la portabilité, il y a des fonctions windows pour, genre _kbhit.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    tut
    tut est déconnecté
    Membre éclairé
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par défaut
    si tu utilises Visual, et que tu peux utiliser les fonctions de l'API Windows et les MFC par exemple, c'est assez simple.
    Mais, je te conseille de poster dans le forum Visual, et aussi de donner plus de renseignements sur ton application : mode graphique / console, utilisation ou pas des MFC, etc...

    Si tu es en mode graphique et que tu utilises les MFC, alors il te faudra surement gérer l'évènement WM_CHAR.

    Bon courage.

  6. #6
    Membre confirmé Avatar de lenouvo
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 252
    Par défaut
    ca dépend aussi si tu veux gérer les evenements claviers en dehors de ton appli. Dans ce cas là, tu peux utiliser les Hooks claviers et souris. Il y a un tres bon exemple en C++ builder sur developpez.com

  7. #7
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    gérer les evenements au claver en C++
    Parles-tu des code ASCII?
    http://www.cplusplus.com/doc/papers/ascii.html

  8. #8
    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
    Par défaut
    le plus simple c'est d'attendre des precisions sinon nous allons refaire le monde

  9. #9
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    alors en fait le but de mon application est d'enregistrer tout ce qui est écrit au clavier, et ce peu importe la fenettre, ce ne sera donc pas une application graphique mais une application en ligne de commande.
    Elle ne fera que ca, lorsqu'elle recupere un évenement au clavier, par exemple appui sur la touche 'e' , elle insérera le char 'e' dans un fichier qu'elle aura pris en parametre du programme, et qu'elle aura créé s'il n'existe pas.

    Voila J'ai vu des trucs interressants :
    si tu utilises Visual, et que tu peux utiliser les fontions de l'API Windows et les MFC par exemple, c'est assez simple.
    Pourrais tu me donner un tuto qui explique comment les utiliser, ou m'expliquer ?

    Merci de vos réponses

    mavina

  10. #10
    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
    Par défaut
    dans ce cas, il faut utiliser un hook global

    le principe est expliqué rapidement dans la FAQ (avec un exemple) http://c.developpez.com/faq/vc/?page...s#HookKeyboard

  11. #11
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    La reception d'evenements claviers est associée à la notion de focus : seule une application à la fois peut avoir le focus et recevoir les entrées clavier + souris. C'est le comportement standard.
    Dans ton cas, il faut passer par un autre mécanisme, celui du hook qui va intercepter toutes les touches entrées.
    http://tcharles.developpez.com/simul/#quoi

  12. #12
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    La reception d'evenements claviers est associée à la notion de focus : seule une application à la fois peut avoir le focus et recevoir les entrées clavier + souris. C'est le comportement standard.
    Dans ton cas, il faut passer par un autre mécanisme, celui du hook qui va intercepter toutes les touches entrées.
    http://tcharles.developpez.com/simul/#quoi


    parfait, quand je compile ca me donne un fichier .dsp un fichier .ncb et un fichier .dsw et un fichier .opt, lequel je renomme en .dll ?

    merci

    mavina

  13. #13
    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
    Par défaut
    regarde plutot dans les repertoires release ou debug, et n'oublie pas le .lib

  14. #14
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    dans le repertoire debug ya un .obj un .pch un .idb et un .pdb
    lequel ? ;p

  15. #15
    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
    Par défaut
    il n'y a rien à renommer.
    La dll sera générée comme il faut.

    Il faut regarder où la dll est compilée
    dans les Project-->settings --> link --> output file name (sous VC++6)

  16. #16
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    pour qu'il veuille me le compiler j'ai du rajouter un main :\

    ca n'influera pas sur mon dll a la fin ?

  17. #17
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Euh... Normalement il n'y a pas de main() dans une DLL... TU es sûr que tu n'essaies pas de créer un exécutable?

    PS: Il peut bien y avoir un DllMain() dans une DLL, mais c'est optionnel...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tu dois sûrement être en train de compiler pour un exécutable et non pour une bibliothèque !

  19. #19
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    mais comment compiler pour une bibliotheque ?

  20. #20
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    apres avoir suivi le FAQ avec MFC AppWizzard (dll)
    quand je compile ca me fait une erreur :
    --------------------Configuration: testdll - Win32 Debug--------------------
    Compiling...
    testdll.cpp
    d:\...\dll\testdll\testdll.cpp(102) : fatal error C1010: unexpected end of file while looking for precompiled header directive
    Error executing cl.exe.

    testdll.dll - 1 error(s), 0 warning(s)
    Que faire ? :\

    merci

    mavina

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ToAsciiEx, comment cela marche ?
    Par mikyfpc dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/02/2004, 21h39
  2. [MFC] list box : comment ça marche
    Par runn2 dans le forum MFC
    Réponses: 4
    Dernier message: 28/01/2004, 12h36
  3. [SYNEDIT] -> Comment ça marche ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/01/2004, 19h11
  4. [TP][Turbo Vision] comment ça marche ??
    Par Costello dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 05/08/2003, 00h24
  5. [update][req. imbriquee] Comment ca marche ??
    Par terziann dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/07/2003, 12h51

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