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 :

keybd_event


Sujet :

MFC

  1. #21
    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
    ou pour etre cohérent avec le reste, ce qui revient au meme, utilise sendmessage avec WM_GETTEXTLENGTH

  2. #22
    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
    mais apres comment faire pour ne faire la selection qu'au niveau de ce qu'a selectionné la souris?
    il faut que je calcule la position de la souris avant et apres??

  3. #23
    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
    et un Edit c'est une zone de texte telle que le notepad par exemple?
    et du texte contenu dans une page internet n'est pas considérée comme un Edit non?

  4. #24
    Membre éprouvé
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Par défaut
    Dans NotePad, ça doit être un RichEdit ...

  5. #25
    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
    arffff
    il y a pas un controle qui fait tout?

  6. #26
    Membre éprouvé
    Inscrit en
    Février 2004
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 102
    Par défaut
    Le CRichEditCtrl permet de gérer la sélection de texte et le copier/coller (et bien d'autres choses...)

  7. #27
    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
    ah cool, je vais regarder ça de plus près 8)

  8. #28
    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
    oui mais non en fait, j'en reviens toujours au meme probleme

  9. #29
    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
    Le problème, c'est que WM_GETTEXT ne marche pas sur tous les types de controles.

    A mon avis, et j'ai pas encore vraiment étudié la question plus en détail, il faudrait récuperer le type de zone sur laquelle tu double-cliques avec GetWindowLong et GWL_ID, puis suivant le type, appliquer soit ce message, soit un autre (EM_SETSEL par ex pour edit), etc ...

    Je crains qu'il n'y ait pas un message "générique".

  10. #30
    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
    oui je pense malheureusement. merci de tes precisions.

  11. #31
    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
    je viens d'avoir une autre idée :
    comme mon but est de recuperer un mot selectionné par la souris pour l'envoyer dans le presse-papier, ne pourrais-je pas simuler un double-clic gauche pour que le mot soit selectionné, et ensuite simuler l'appui des touches CTRL+C ??

  12. #32
    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
    j'avais cru comprendre que tu n'arrivais pas à simuler le CTRL+C, non ?

  13. #33
    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
    ben oui, mais bon... je vais rééssayer du coup
    sinon peut etre que passer par le clipboard serait plus simple non??

  14. #34
    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
    moi j'étais parti sur ca, mais du coup, ca complique la récupération de la zone selectionnée.
    Si tu arrives à simuler le CTRL+C, je pense que c'est plus simple

  15. #35
    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
    le probleme est que le CTRL+C agit avant la selection du mot lors du double-clic ou apres??
    car dans le premier cas, du coup, ca ne marcherait pas puisque rien ne serait selectionné.

    pour le moment, ce code ne marche pas :
    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
     
    LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam) 
    { 
       if(wParam==WM_LBUTTONDBLCLK) 
    keybd_event( VK_LCONTROL,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | 0,
                          0 );
    keybd_event( 43,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | 0,
                          0 );
    keybd_event( 43,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                          0);
    keybd_event( VK_LCONTROL,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                          0);
    return CallNextHookEx(VueDonnees.MouseHookHandle,nCode,wParam,lParam);
    }

  16. #36
    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
    meme dans un programme tout bete, je n'arrive pas à simuler le CTRL-C, tu y arrives toi ?

    à propos, je pense pas que le 0x45 et le KEYEVENTF_EXTENDEDKEY soit utile

  17. #37
    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
    oui mais bon par depit, j'avais essaye
    je vais essayer dans un programme de test oui.

  18. #38
    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
    j'ai essaye ca :
    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
     
    keybd_event( 0x11,
                          0, 
                          KEYEVENTF_EXTENDEDKEY | 0,
                          0 );
    keybd_event( 0x43,
                          0,
                          KEYEVENTF_EXTENDEDKEY | 0,
                          0 );
    keybd_event( 0x43,
                          0,
                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                          0);
    keybd_event( 0x11,
                          0,
                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                          0);
    et ca a pour effet de produire en continu la touche C...
    donc l' appui sur la touche control ne doit pas etre pris en compte.

  19. #39
    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 y est j'ai trouve! ( enfin presque )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam) 
    { 
       if(wParam==WM_LBUTTONDBLCLK) 
    keybd_event( 0x11, 
                          0, 
                          KEYEVENTF_EXTENDEDKEY | 0, 
                          0 ); 
    keybd_event( 0x43, 
                          0, 
                          KEYEVENTF_EXTENDEDKEY | 0, 
                          0 );
    la ca me fait bien le copier. le probleme est que comme je ne relache pas les touches, tout mon pc s'est plante apres et il a fallu que je reboot.
    donc le probleme se situe au niveau du relachement des touches

  20. #40
    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
    quelqu'un aurait il une idée pour résoudre ce probleme?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Utilisation de keybd_event et PostKeybdMessage
    Par Bmagic dans le forum Visual C++
    Réponses: 2
    Dernier message: 21/08/2006, 09h56
  2. Problème Keybd_Event
    Par Mestoph dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/04/2006, 01h17
  3. keybd_event ne marche pas sur un jeu !
    Par seal3 dans le forum Windows
    Réponses: 5
    Dernier message: 24/03/2006, 16h28
  4. Réponses: 7
    Dernier message: 16/03/2006, 20h54
  5. Réponses: 2
    Dernier message: 11/07/2005, 23h54

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