Je cherche dans l'API une fonction qui me donnerait l'état des boutons
de la souris sans passer par les messages standard. Ca paraît tout bête
mais je sèche complètement. J'ai des cas de figure où les messages
WM_*BUTTONUP semblent se perdre, et en tout cas ma fonction
Ev*ButtonUp() n'est pas appelée par le noyau de traitement des messages.
Ca se produit sur certains portables, et heureusement c'est rarissime,
mais ça pose alors un vrai problème. Et comme j'ai pas ce genre de
matériel ici, je peux pas débugguer.
J'ai dans l'appli un timer affecté à d'autres fonctions mais qui peut
servir accessoirement à contrôler si le bouton a été relâché bien que le
message ne soit pas parvenu. Le problème est donc de pouvoir lire
directement l'état des boutons.
Il y a apparemment dans l'API une fonction PeekConsoleInput() qui
semblerait correspondre à ce que je cherche, mais qui demande un handle
que j'ai pas.
Toute idée bienvenue, même sous forme sarcastique...
Excellent ! C'est exactement ce que je cherchais. Merci Christian, me voilà moins bête.
Vincent Burel
"Bertrand Lenoir-Welter" wrote in message news:42df7bfc$0$25027$
Salut à tous
Je cherche dans l'API une fonction qui me donnerait l'état des boutons de la souris sans passer par les messages standard. Ca paraît tout bête mais je sèche complètement. J'ai des cas de figure où les messages WM_*BUTTONUP semblent se perdre, et en tout cas ma fonction Ev*ButtonUp() n'est pas appelée par le noyau de traitement des messages. Ca se produit sur certains portables, et heureusement c'est rarissime, mais ça pose alors un vrai problème. Et comme j'ai pas ce genre de matériel ici, je peux pas débugguer.
Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur bouge sa souris entre temps).
VB
"Bertrand Lenoir-Welter" <bertrand.2004@galaad.net> wrote in message
news:42df7bfc$0$25027$8fcfb975@news.wanadoo.fr...
Salut à tous
Je cherche dans l'API une fonction qui me donnerait l'état des boutons
de la souris sans passer par les messages standard. Ca paraît tout bête
mais je sèche complètement. J'ai des cas de figure où les messages
WM_*BUTTONUP semblent se perdre, et en tout cas ma fonction
Ev*ButtonUp() n'est pas appelée par le noyau de traitement des messages.
Ca se produit sur certains portables, et heureusement c'est rarissime,
mais ça pose alors un vrai problème. Et comme j'ai pas ce genre de
matériel ici, je peux pas débugguer.
Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut
que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur
bouge sa souris entre temps).
"Bertrand Lenoir-Welter" wrote in message news:42df7bfc$0$25027$
Salut à tous
Je cherche dans l'API une fonction qui me donnerait l'état des boutons de la souris sans passer par les messages standard. Ca paraît tout bête mais je sèche complètement. J'ai des cas de figure où les messages WM_*BUTTONUP semblent se perdre, et en tout cas ma fonction Ev*ButtonUp() n'est pas appelée par le noyau de traitement des messages. Ca se produit sur certains portables, et heureusement c'est rarissime, mais ça pose alors un vrai problème. Et comme j'ai pas ce genre de matériel ici, je peux pas débugguer.
Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur bouge sa souris entre temps).
VB
Bertrand Lenoir-Welter
> Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur bouge sa souris entre temps).
Non, la souris est bien capturée à réception du message WM_*BUTTONDOWN. Y'a vraiment un message qui se perd et je sais pas pourquoi (pour le test à distance chez le client, j'avais ajouté un petit bip en tête du traitement Ev*ButtonUp(), et ça bipe pas, pourtant la fenêtre a toujours le focus). Mais GetAsyncKeyState() résoud complètement mon problème.
Merci quand même.
> Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut
que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur
bouge sa souris entre temps).
Non, la souris est bien capturée à réception du message WM_*BUTTONDOWN.
Y'a vraiment un message qui se perd et je sais pas pourquoi (pour le
test à distance chez le client, j'avais ajouté un petit bip en tête du
traitement Ev*ButtonUp(), et ça bipe pas, pourtant la fenêtre a toujours
le focus). Mais GetAsyncKeyState() résoud complètement mon problème.
> Notez que si vous ne faites pas de SetCapture sur un BUTTONDOWN, il se peut que ce soit un autre controle qui recoive le BUTTONUP (si l'utilisateur bouge sa souris entre temps).
Non, la souris est bien capturée à réception du message WM_*BUTTONDOWN. Y'a vraiment un message qui se perd et je sais pas pourquoi (pour le test à distance chez le client, j'avais ajouté un petit bip en tête du traitement Ev*ButtonUp(), et ça bipe pas, pourtant la fenêtre a toujours le focus). Mais GetAsyncKeyState() résoud complètement mon problème.