Lire dernier message clavier

dambeaufort Messages postés 60 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 17 septembre 2004 - 8 mars 2004 à 16:09
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 - 8 mars 2004 à 21:52
bonjour,

voici mon probleme: j'arrive a lire un message du clavier, mais je souhaiterais lire uniquement le dernier message recu par le clavier. En effet, si j'inclue une pause dans le code ci dessus, la queue des messages se vide meme si je n'appui sur un bouton.
Est-il donc possible soit d'effacer la queue de message intercepter ou alors de lire le dernier message contenu dans la queue.

Voici comment je procede:
mouv=0;
MSG msg;
GetMessage( &msg, NULL, 0, 0 );
switch(msg.message)
{ case WM_KEYDOWN:
if ((msg.wParam) == VK_F8) { mouv=1; }
if ((msg.wParam) == VK_F9) { mouv=2; }
}

pui le traitement:
if (mouv==1) {.........}

Si une pause (sleep) apparait dans le traitement en pointille, je ne suis donc plus synchrone avec mon clavier!!!!

Merci de votre reponse rapide, ca presse:!!!!!!!!!!!!!

3 réponses

glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
8 mars 2004 à 21:12
Moi je n'ai pas d'idée...
au pire, tu peux toujours faire un multi-thread pour la gestion du clavier non ?
Enfin moi je propose ça en dernier recours, puisque c'est assez relou les multi-thread je trouve....
++ Glipper
0
dambeaufort Messages postés 60 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 17 septembre 2004
8 mars 2004 à 21:43
ben oui la est mon probleme, je vais avoir besoin d'une application multithread mais meme avec l'aide sur ce forum je ne suis pas arrive a en faire fonctionner un (en plus ca m'embete de faire un thread pour ca).
Donc a part la soluce du multithreading auxquel j'avais pense rien d'autre.?
Si par contre vous auriez en meme temps une source qui contient une appli multithread tres simple faites moi signe car je n'y comprend que dal!!!!!!!!!!!!!!!
0
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
8 mars 2004 à 21:52
Moi j'ai un exemple de multi_thread plus ou moins simple.
Apparament, on cree le thread comme ca :

_beginthread (Thread1, 0, ¶ms) ;

Cette fonction appelle la procedure 'Thread1'.

Apres, voila la procédure :

void Thread1 (PVOID pvoid)
{
....
instructions
....
_endthread () ;
}

Voila, j'espere que ça pourra t'aider. Je t'ai mis le programme d'ou je sors ça en entier à cette adresse (il n'est pas de moi): http://glipper.free.fr/Autre/multitache/

++ et bonne chance ;)
Glipper
0
Rejoignez-nous