SendMessage() & WM_KEYUP

cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004 - 24 sept. 2002 à 10:09
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010 - 30 août 2003 à 19:20
Salut a tous,

voila, j'ai un process qui tourne en multithread pour chopper les touches utiliser et j'aimerai qu'il les envoi a la fenetre principale (hwnd) dans laquelle j'ai défini la case WM_KEYUP, avec les actions pour différente valeur de wParam.

Mon pb, c'est que lorsque je veux que mon process envoi les touches a la fenetre cela ne fonctionne pas, par exemple pour la touche entree j'ai fais ca :

SendMessage(hwnd, WM_KEYUP, (WPARAM)13, 0);

Mais rien ne se passe, la fenetre ne recoit pas ce message.

Savez-vous d'ou vient l'erreur ?

D'avance merci.

7 réponses

jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
24 sept. 2002 à 11:39
salut,

>> Savez-vous d'ou vient l'erreur ?

comme ca, sans plus de code, peut pas dire.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
24 sept. 2002 à 14:22
Bah je vois pas ce que je peux te donner comme code, dis moi ce dont tu as besoin, mon seul pb, c'est la transmission de message, tout le reste fonctionne bien.

Dis moi ce qui te faut ?
0
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
24 sept. 2002 à 14:47
Deja est-ce que ton thread recoit bien l'evenement WM_KEYUP??

>> Dis moi ce qui te faut ?

ben la partie ou tu interceptes l'evenement dans ton thread et la partie du traitement du message dans la callback de ta fenetre.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
24 sept. 2002 à 16:56
Mon thread lance au demarrage de la fenetre

void Get_Key (PVOID pvoid)
{
int Enter;

while (Key.Continue == 1)
{
Enter = GetAsyncKeyState(13);

if (Enter != 0)
{
SendMessage(hWnd, WM_KEYUP, VK_RETURN, 0);
}
}
_endthread();
}

Ensuite la partie callback de ma fenetre :

int nVirtKey;

switch (message)
{
switch (lParam);
{
case WM_KEYUP:
nVirtKey = (int)wParam;

if (nVirtKey == 13)
{
....
}
}
}

Je ne suis pas dans ma fenetre lorsque je souhaite receptionner les touches, c pkoi j'ai besoin d'un thread.

Merci d'avance.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
24 sept. 2002 à 18:59
bon il suffit d'enlever le switch(lParam) et normalement ta fenetre devrai recevoir le msg.
0
cs_Manson Messages postés 137 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 30 septembre 2004
24 sept. 2002 à 19:15
Ok, je viens d'essayer, ca fonctionne pas. Je lance mon prog, la fenetre s'ouvre, le thread se lance, et lorsque je vais dans une autre fenetre exterieur a mon programme et que j'appui sur Entree, rien, ma fenetre ne recois rien.

Je vois pas d'ou ca vient.
0
cs_JCpp Messages postés 334 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 3 juillet 2010
30 août 2003 à 19:20
coucou

Je voulai savoir ci tu as téuci avec un Thread,
ci oui pourai tu m'envoyer ta source ?

car j'ai le même pb

Merci,
0
Rejoignez-nous