Enter im Eingabefeld beendet den Dialog



  • Hallo,
    ich versuche in VC++ eine MFC Bedienoberfläche für mein Programm zu schreiben. Wenn ich jetzt die Eingabefelder mit der Maus bestätige ist alles OK. Wenn ich nach einer Eingabe ENTER drücke, wird wahrscheinlich ein 'OnOK()' gesendet und mein Programm beendet. Eigentlich reicht mir aber ein 'UpdateData(TRUE)' nach dem drücken der Enter Taste,um die Daten der Eingagefelder an die Variablen zu übergeben.

    Wer kann mir helfen?



  • Schreib doch dein eigenes OnOK. 🙂



  • estartu_de schrieb:

    Schreib doch dein eigenes OnOK. 🙂

    Bin doch noch ein Frischling in MFC und habe in Mut: 'VC++ in 21Tagen'
    nichts gefunden.

    1.-Wo und wie muß ich im Klassenassistent beginnen?

    2.-Benutze ich für enter die Nachricht EN_CHANGE mit der Object-ID des
    Eingabefeldes?

    3.- Ist die Object-ID des Dialoges der bessere Einstiegspunkt?



  • Nix gegen dich, aber es muss mal raus: 😡 ICH HASSE ... IN 21 TAGEN!!!!! 😡

    Mach in der Resource einen Doppelklick auf den OK Knopf. Dann solltest du alleine weiter kommen. 🙂



  • 🙂



  • Den OK und den Abbrechen Button habe ich gelöscht, weil ich keine Verwendung dafür hatte 😞

    Was nun?



  • Servus,

    Ganz einfach:

    in .cpp

    void CDeinDialog::OnOK()
    {
    //nix reinschreiben oder was du haben willst wenn Return gedrückt wird
    }
    

    in .h

    //unter den Konstruktoren:
    class CDeinDialog : public CDialog
    {
    // Konstruktion
    public:
        void OnOK();
    

    und Pferdfisch....
    war ja nicht so schwer oder?

    *winke*
    Hellsgore



  • Dann ändern wir den Ansatz und stellen die Edits so ein, dass die sich um das Enter kümmern:

    1.) Markiere all deine Eingabefelder (Shift-Taste festhalten und nacheinander anklicken)
    2.) Rechte Maustaste
    3.) Eigenschaften
    4.) Karteikarte: Formate
    5.) Das Häkchen "Return möglich" setzen
    6.) Beten (im Ernst, hatte grade nicht die Möglichkeit das auszutesten - sollte aber gehen)
    7.) (Ein besseres Buch oder Tutorial suchen - guck mal da: http://www.henkessoft.de/)



  • Danke für eure Hilfe,
    aber "5.) Das Häkchen "Return möglich" setzen " hat nicht geholfen und bei dem Tip von Hellsgore bekomme ich Fehler wegen der Neudefinition von OnOK().

    Kann bitte mal jemand im mein Projekt reinschauen? (Der Abgabetermin drängt.)

    www.city-com.net/cpp/Lastgenerator2.zip



  • So, hab folgendes mit deinem Projekt gemacht:

    - Neuen Button eingebaut mit der ID IDOK
    - Darauf Doppelklick
    - OK drücken
    - den Kommentar und besonders die Zeile

    CDialog::OnOK();
    

    löschen
    - Den Knopf wieder löschen
    - Fertig!!!!

    Ist der Tips von Hellsgore auf Umwegen für Anfänger.



  • Der Tip Hellsgore funktioniert, ich habe es in Deinem Projekt getestet.

    Header:

    class CLastgenerator2Dlg : public CDialog
    {
    // Konstruktion
    public:
    	CLastgenerator2Dlg(CWnd* pParent = NULL);	// Standard-Konstruktor
    	void OnOK();
    

    cpp Datei:

    void CLastgenerator2Dlg::OnOK()
    {
    }
    


  • Suuuuuuper !!!!
    ich hatte in der
    Header Datei den Bereich von "class... bis ...//Kostruktor" übernommen
    und dann die Klammer wieder geschlossen. 😞

    Vielen Dank an alle, die geholfen haben.


Anmelden zum Antworten