wxDevC++: WxEdit soll mit ENTER eine Funktion starten



  • Hey,

    leider hab ich mal wieder zwei kleine Probleme:

    1. Ich habe ein Eingabefeld, WxEdit1. Wenn ich dort ENTER eingebe, soll eine Funktion gestartet werden. Wie mache ich das?

    2. Wie kann ich den Cursor, bzw. die Blinkende Pipe | in das Textfeld bringen.
    Doofe Erklärung... Wenn das Input Feld nicht aktiv ist, wie aktiviere ich es dann, dass ich schreiben kann?

    Wäre nett, wenn jemand ein Teil seines Wissens teilen könnte.

    Frohe Weihnachten!

    MfG Eric



  • Ich habe ein Eingabefeld, WxEdit1

    Die Klasse WxEdit1 kenne ich nicht. Meinst du ein wxTextCtrl?

    Wenn ich dort ENTER eingebe, soll eine Funktion gestartet werden. Wie mache ich das?

    Indem du wxEVT_KEY_DOWN abfängst:

    myTextCtrl->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(MyFunction));
    
    MyFunction(wxKeyEvent& event)
    {
       if(event.GetKeyCode() == WXK_RETURN)
       {
          do_something();
       }
       event.Skip();
    }
    

    Wenn das Input Feld nicht aktiv ist, wie aktiviere ich es dann, dass ich schreiben kann?

    Meinst du so:?

    myTextCtrl->SetFocus();
    


  • Also das mit dem SetFocus(); hat schon mal geklappt. Danke.

    Nur das mit dem Enter geht noch nicht so richtig.
    Ja, das ist ein wxTextCtrl.

    Wie gehe ich da genau vor, um das einzubinden?



  • Genau so, wie ich gesagt habe.
    Du rufst nach dem Erstellen die Connect-Methode des TextCtrl auf und bindest eine, von dir definierte Funktion, die ein wxKeyEvent als Parameter nimmt, an das wxEVT_KEY_DOWN-Event. In der Funktion kannst du dann überprüfen, ob die gedrückte Taste RETURN ist und ggf. etwas ausführen.

    geht noch nicht so richtig.

    Fehlermeldung / genauere Beschreibung.


Anmelden zum Antworten