[WxWidgets] Evènement clavier

Evènement clavier [WxWidgets] - C++ - Programmation

Marsh Posté le 28-06-2006 à 18:57:37    

Bonjour,
 
Comment faire pour savoir si un utilisateur à appuyé sur une touche ? Que faut-il mettre dans "BEGIN_EVENT_TABLE" ?
Et j'aimerais aussi trouvé l'évènement qui permet de savoir si l'utilisateur à bouger la fenêtre (wxFrame)...
 
Merci d'avance...

Reply

Marsh Posté le 28-06-2006 à 18:57:37   

Reply

Marsh Posté le 29-06-2006 à 20:52:41    

il faut mettre  

Code :
  1. EVT_KEY_DOWN(func)
  2. EVT_KEY_UP(func)
  3. EVT_CHAR(func)


 si tu veux respectivement intercepter  
l'evenement coreespondant a une touche enfoncée
l'evenement coreespondant a une touche relachée
un evenement sur une touche
voir  
http://www.wxwindows.org/manuals/2 [...] wxkeyevent
 
pour detecter le deplacement de la fenetre

Code :
  1. EVT_MOVE(func)


http://www.wxwindows.org/manuals/2 [...] xmoveevent
 
 
pour tout se qui concerne wxWidgets, voici la bible:
http://www.wxwindows.org/manuals/2 [...] tents.html


Message édité par sankukai8 le 29-06-2006 à 20:58:15
Reply

Marsh Posté le 30-06-2006 à 11:00:25    

Merci à toi sankukai8 mais j'ai un autre problème :(
 
J'ai créer une classe myFrameMain dérivé de wxFrame.
Dans le constructeur de la classe j'ai ceci:
 

Code :
  1. myFrameMain::myFrameMain() : wxFrame(NULL, -1, "Title", wxPoint(-1, -1), wxSize(1024,790), wxDEFAULT_FRAME_STYLE)
  2. {
  3. MyGLCanvas = new wxGLCanvas(this, -1, wxPoint(0,0));
  4. wxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
  5. sizer->Add(MyGLCanvas, 1, wxALL|wxEXPAND, 0);
  6. SetSizer(sizer);
  7. SetAutoLayout(true);
  8. Layout();
  9. Show(true);
  10.         ....
  11. }


 
Voici ma table des évènements:
BEGIN_EVENT_TABLE(myFrameMain, wxFrame)
 EVT_KEY_DOWN(myFrameMain::onKey)
END_EVENT_TABLE()
 
Le problème : La fonction "onKey" n'est jamais éxécuté sauf si je commente la ligne "sizer->Add(MyGLCanvas, 1, wxALL|wxEXPAND, 0);".
 
Merci d'avance...

Reply

Marsh Posté le 30-06-2006 à 13:15:33    

C'est bon j'y suis arrivé.
Pour ceux que ça interresse : http://forum.hardware.fr/hardwaref [...] 9382-1.htm

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed