KeyEvents richtig zuordnen können



  • Hallo zusammen,

    ich versuche gerade, ein altes Windows Programm auf wxWidgets umzustellen.
    In diesem alten Programm werden Tastendrücke in einer WndProc()-Funktion abgefangen und darauf reagiert. Dabei werden folgende Identifier abgefangen:

    WM_KEYDOWN
    WM_SYSKEYDOWN
    WM_SYSCHAR
    WM_CHAR

    Ich gehe nun her und fange in meinem wxWidgets - Progarmm folgendermaßen diese Events ab:

    void OnKeyDown(wxKeyEvent &event){ verarbeiteTastendruck(_T("KeyDown"), event); }
    	void OnChar(wxKeyEvent &event){ verarbeiteTastendruck(_T("Char"), event); }
    

    Ich versuche also, sowohl normale KeyDownEvents als auch Char-Events abzufangen. So wie ich das verstanden habe, werden Tastenkombinationen wie Strg+X oder andere über die Char-Events abgefangen.

    Wie kann ich es nun realisieren, dass ich in der Methode "verarbeiteTastendruck()" sowohl normale einzelne Tasten also auch Kombinationen abfangen kann. Wie unterscheide ich diese in dieser Methode?

    ich muss z.B. abfangen können, dass einmal F1 allein, F1 mit Alt und F1 mit Strg gedrückt wurde. Auch müssen andere Kombinationen wie ALT + A oder ALT + F usw. abgefangen werden.

    Kann ich in dieser Methode eine unterteilung machen, wobei ich dreiBereiche hab?Soll heißen das ich es ungefähr so aufbauen wollte:

    verarbeiteTastendruck()
    {
    ...
    if( ALT gedrückt )
    {
     switch(taste)
     {
       case A: Behandle ALT+A;
       case B: Bahandle ALT+B;
     }
    }
    
    if( STRG gedrückt)
    {
      swtich(taste)
      {
         case X: Behandle STRG+X;
         ....
      }
    }
    
    ansonsten wurde nur eine Taste gedrückt:
    
    switch(taste)
    {
     case F1: Bandle F1;
     case a:  Bahndle 'a';
     ...
    }
    }
    

    Kann mir einer dabei helfen? Vielen Dank schon mal!!
    Gruß



  • hast du schon hier geschaut:
    http://www.wxwidgets.org/manuals/stable/wx_wxkeyevent.html#wxkeyevent

    oder im Buch (7 MB) auf Seite 175 bis 181:
    http://www.phptr.com/content/images/0131473816/downloads/0131473816_book.pdf

    wxKeyEvent hat die Funktionen ControlDown, AltDown, ShiftDown für die zusätzlichen Tasten und GetKeyCode für die "normalen" Tasten.
    Also mit GetKeyCode die Taste ermitteln und prüfen ob zusätzliche Taste mit ControlDown, AltDown, ShiftDown.


Anmelden zum Antworten