Creer une virtual key

fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 14 juin 2007 à 14:28
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 15 juin 2007 à 10:03
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!
A voir également:

4 réponses

cs_Adeon Messages postés 293 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 10 avril 2015 2
14 juin 2007 à 18:02
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 juin 2007 à 22:39
WM_NEXTDLGCTL existe sous embedded ???
si oui:
PostMessage(hdlg, WM_NEXTDLGCTL, 1, 0); // prev ctrl

ciao...
BruNews, MVP VC++
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
15 juin 2007 à 09:01
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?
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
15 juin 2007 à 10:03
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?! ;-)
0
Rejoignez-nous