Creer une virtual key

Signaler
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008
-
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008
-
Bonjour,
j'aimerais savoir si il était possible de créer une virtual key du genre Shift+Tab?
J'ai essayé VK_TAB+VK_SHIFT mais ca ne marche pas evidemment! ^^
Je prog sous embedded visual c++, sans MFC, et j'aimerais pouvoir faire les tabulations dans le sens inverse de la tabulation lors de l'interception du WM_KEYDOWN...
Merci!

4 réponses

Messages postés
293
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
10 avril 2015
2
Si je me trompe pas :

#include <windows.h>
keybd_event(VK_SHIFT,0,0,0);
keybd_event(VK_TAB,0,0,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);.
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0);

Pour + d'infos :
http://tcharles.developpez.com/simul/

Voila, A++
___________________
Adeon.
http://warcrave.com/http://www.warcrave.com
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
WM_NEXTDLGCTL existe sous embedded ???
si oui:
PostMessage(hdlg, WM_NEXTDLGCTL, 1, 0); // prev ctrl

ciao...
BruNews, MVP VC++
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008

Merci pour vos reponses
WM_NEXTDLGCTL ne me génere pas d'erreur a la compiltion mais n'a pas l'air de fonctionner. En plus en fonction de la touche je dois gérer pas mal de choses, comm changer la couleur de mon bouton si il a le focus, sinon ca se voit pas ( c'est es joies de embedded et de Windows CE ^^)
Donc pour VK_TAB ca fonctionne tres bien, je veux juste faire l'inverse
Par contre Adeon, je n'ai pas utilisé les kb_event? j'intercepte le message WM_KEYDOWN et ensuite je compare wParam à VK_TAB par exemple? Est-ce ta solution peut etre adaptée dans mon cas?
Car je ne vois pas trop comment faire un truc du genre :
if(wParam = = VK_TAB) ...
if(wParam = = keybd_event(VK_SHIFT,0,0,0...

Dois-je changer de méthode a ton avis?
Messages postés
198
Date d'inscription
lundi 24 avril 2006
Statut
Membre
Dernière intervention
3 avril 2008

Trouvé! ;-)
En cherchant un peu mieux, j'ai trouvé une astuce ( suggéré d'ailleurs par BruNews sur un autre post...)
Comme mon if(wParam==VK_TAB) fonctionne, il suffisait pour mon exemple d'ajouter ensuite un : 
if(wParam==VK_TAB)
{
   if(GetKeyState(VK_SHIFT) = = 0)
   {
      //traitement si que TAB
   }
   else
   {
      //si SHIFT et TAB a la fois...
   }
}

Je n'avais peut etre pas été assez clair, vous auriez sans doute trouver ca sinon
Merci a vous!
PS : je vais tester plus en détail, si BruNews caa te choque, di le moi, j'aurais peut etre de mauvaises surprises apres?! ;-)