Interception des signaux liée au boutons du clavier
pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006
-
10 févr. 2005 à 14:44
pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006
-
10 mars 2005 à 13:40
bonjours a tous et merci d'avance
voila mon problème :
je travaille sous visual C++ 4 embarqué cepandant le principe reste le mêm, je désire intercepter l'appui sur les touches directionnelles du clavier ainsi que la touche entrée.
boumarsel
Messages postés298Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention 9 juillet 20081 13 févr. 2005 à 16:41
ce code ne fait aucun traitement, il ne fait que renvoyer le message à la classe de base pour en definir un traitement par defaut.
essai d'exploiter les parametres d'entree (nChar, nRepCnt, nFlags) il y en a tous les infos relatives à la touche appuiyée..etc
yoyo269
Messages postés1403Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention11 janvier 20093 15 févr. 2005 à 11:16
Désolé boumarsel, mais je bosse sous Dev-C++ et je me sers des messages cités ci-dessus pour intercepter les messages clavier sur un RichEdit (en l'ayant préalablement sous-classée).
Et ça fonctionne nickel.
pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006 15 févr. 2005 à 17:31
alor j'ai un peu bosser sur le sujet et voila le résultat:
on peu intercepter le clavier aussi facilement que la souris le probleme
c'est le FOCUS
car si la fenetre est vide sans bouton sans rien faite le test ca marche
WM_ONKEYDOWN
cepandant si il y a un bouton ou autre le focus prend la main et intercepte tout
les message
le but a présent et de bloqué ce focus
voila merci a tous
boumarsel
Messages postés298Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention 9 juillet 20081 18 févr. 2005 à 18:16
NON, il y'a une autre solution:
BOOL CMessageBoutonDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
/*lParam:Pointer to a notification message (NMHDR) structure that contains the notification code and additional information. For some notification messages, this parameter points to a larger structure that has the NMHDR structure as its first member.*/
boumarsel
Messages postés298Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention 9 juillet 20081 18 févr. 2005 à 18:39
la proprieté 'parent notify ' de chaque controle de la bnoite doit etre true.
je sais pas si 'if(nmhdr.code==WM_KEYDOWN)' est juste
je pense que tu dois mettre if(nmhdr.code==WMN_KEYDOWN)
c'est juste l'idée, c'est à toi de chercher le reste
++
pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006 28 févr. 2005 à 15:32
?????
OnNotify je connait pas et visual non plus aparament esceque tu peut clarifier un peu
la chose
boumarcel car la je voi pas de quelle fonction ou interception de
message tu me parle....
merci a tous
boumarsel
Messages postés298Date d'inscriptionjeudi 12 juin 2003StatutMembreDernière intervention 9 juillet 20081 28 févr. 2005 à 15:43
je l'ai pas inventé, t'as bien remarqué le commentaire en anglais, je n'ai fait que copier/coller de la documentation MSDN, cherche bien dans l'assistant classWizard WM_NOTIFY se converti en CMessageBoutonDlg::OnNotify en MFC.
si tu n'arrive pas à regler le probleme, essai avec le HOOK sur clavier c'est la solution la plus utilisé et la plus sure pour intercepter les evenements de clavier quelque soit le controle qui a le focus...cherche dans la doc MSDN tu en trouvera tout
++
pekeeTeam
Messages postés7Date d'inscriptionjeudi 10 février 2005StatutMembreDernière intervention15 janvier 2006 10 mars 2005 à 13:40
voila la solution du moin je pence :
pour enlever le focus d'entrer il faut sur chaque objet de la fenetre listBox, Bouton, etc....
avec un click droit il faut d'écocher la case "TABSTOP"
voila
by bon courage a tous