Question sur les WM_*

guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009 - 6 oct. 2003 à 14:01
guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009 - 7 oct. 2003 à 00:19
Bonjour,
J'ai une petite question.
J'ai un code de se type:(en super simplifié)

[...]
switch(mssg) {
case WM_KEYDOWN:
if(Param == VK_UP)
{
messagebox(0,"coucou","coucou",0);
}
break;

case WM_SETFOCUS:
boucle infinie
break;
}
[...]

Voila, quand ma form a le focus une boucle infinie se crée, et j'aimerais que quand j'appuie sur la flèche du haut une message apparaisse.
Le pb est que tant que ma boucle tourne WM_KEYDOWN ne prend aucun message.
Y’a t'il une possibilité pour palier a ce probléme.
PS:
- WM_KEYDOWN sans la boucle fonctionne tres bien.
- Mon compilateur est DevC++

Avez vous une idée ... Merci

GuitouLeFoux :-p
"Le secret du sage est de briller dans l'ombre"

4 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
6 oct. 2003 à 17:50
Dans ta boucle infinie tu teste l'appuie d'une touche avec GetAsynKeyState ... un fonction du genre
0
guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009
6 oct. 2003 à 17:53
Bonjour,
non je fais bouger ma form.
GuitouLeFoux :-p
"Le secret du sage est de briller dans l'ombre"
0
FreeYo Messages postés 31 Date d'inscription jeudi 31 juillet 2003 Statut Membre Dernière intervention 7 octobre 2004
6 oct. 2003 à 17:59
8-) FreeYo

Le mieux est de remplacer la boucle infinie par un Thread

Sinon, tu peux essayer le code suivant dans ta boucle (à la manière de la bonne vieille fonction DoEvents() de VB)

while (PeekMessage(...))
{
TranslateMessage(...);
DispatchMessage(...);
}
0
guitoulefoux Messages postés 152 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 6 janvier 2009
7 oct. 2003 à 00:19
Merci pour votre aide mais je vais essayer d'utiliser un HOOK

GuitouLeFoux :-p
"Le secret du sage est de briller dans l'ombre"
0
Rejoignez-nous