Bip lors de l'utilisation du clavier sur une picture box

Résolu
ROnE91 Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 14 janvier 2005 - 13 janv. 2005 à 19:34
ROnE91 Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 14 janvier 2005 - 14 janv. 2005 à 19:17
Bonjour,



J'ai une appli programmée avec l'api win32 avec un
hook sur le clavier qui marche lorsque que le focus est sur une picture
box.

Le problème c'est que lorsque que la touche
appuyée est une lettre ou un chiffre, windows emet un bip avant
d'exécuter ma commande.

J'aimerais donc savoir comment empecher l'emmission de ce bip ?

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 janv. 2005 à 19:07
Un hook.

if(HIWORD(lParam) <= 0xC000) {
KeyDownPrincipal(wParam);
return 1;
}

ainsi tu ne retransmets pas la touche.

ciao...
BruNews, MVP VC++
3
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
14 janv. 2005 à 00:43
Salut,
Mets le code de ta procédure de hook ici et on trouvera d'où vient le problème.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 janv. 2005 à 00:47
Comment ça 'avant' ? Si tu interceptes les touches dans le hook, devrait suffire de ne pas faire suivre la touche en retournant 1 au niveau de la KeyboardProc() du hook.

ciao...
BruNews, MVP VC++
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
14 janv. 2005 à 04:26
C'est vrai. J'ai demandé de voir le code ici pour voir s'il ne s'agit pas d'une procédure de sous-classement car beaucoup de gens confondent le hook et le sous-classement. Le problème du bip se pose quand on ne traite pas le message WM_CHAR dans la procédure de sous-classement.
0

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

Posez votre question
ROnE91 Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 14 janvier 2005
14 janv. 2005 à 18:56
Voila la fonction avec laquelle j'intercepte l'utlisation du clavier :



LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)

{

if(nCode != MSGF_DIALOGBOX) goto defRet;



if (HIWORD(lParam) <= 0xC000) KeyDownPrincipal(wParam);



defRet:

return (CallNextHookEx(eHhk, nCode, wParam, lParam));

}





En effet je n'ai aucune idée s'il s'agit d'un hook ou d'un sous classement...


0
ROnE91 Messages postés 9 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 14 janvier 2005
14 janv. 2005 à 19:17
Effectivement ca marche !



Merci beaucoup
0
Rejoignez-nous