Daten von Kind-Fenster an Haupt-Fenster übergeben



  • schau mal in "c++ in 21 Tagen", da ist ein Kapitel mit Main- und Childfenstern.
    Allerdings auch wieder mit einem Modalen Dialog

    Ich hab mir immer eine Variable auf das Cildfenster gepackt und dann einfach die Daten abgegriffen. z.b.

    im Hauptdialog

    .h-File
    CMeinDlg cMeinDlg;
    int erg = 0;
    
    void funktionRechne()
    {
    erge = 2 + cMeinDlg.Var2;
    }
    

    im Child

    .h File
    int Var2;
    
    void funkitonButton()
    {
    // Eingabe in ein Edit ist Var2
    // Button geklickt
    }
    

    So hab ich daten zwischen 2 Dialogen transportiert. Ist recht schick in dem Buch / Pdf erklärt. Sollte man sich als Anfänger mal antun.



  • Vielen Dank für eure Hilfe! 🙂
    Ich habe einen modalen Kind-Dialog. Ich habe get()-Funktionen geschrieben, die mir Daten von Kind-Dialog liefern. Im Haupt-Dialog habe ich einen Zeiger auf den Kind-Dialog, so kann der Haupt-Dialog vom Kind-Dialog Daten bekommen. Das Problem ist, dass es an einer gewissen Stelle passieren soll - nur wenn der Button 'Konfig.übernehmen' im Kind-Dialog gedrückt wird. Das Haupt-Dialog soll das erfahren, eine Anwendung, die im Hintergrung läuft, stoppen, Daten vom Kind-Dialog einsetzen und die Anwendung wieder starten. Wie kann man das geschickt machen? 😕



  • Da der Dialog modal ist, pausiert die Anwendung solange der offen ist.
    Da musst du wohl erstmal auf einen nicht-modalen Dialog umstellen.

    Dann würde ich, wenn der Knopf gedrückt wird die Nachricht verschicken und in deren Handler im Haupt-Dialog die Daten abrufen und was sonst noch so gemacht werden soll.



  • Entschuldigung, ich habe mich vertippt. Natürlich habe ich einen nicht-modalen Kind-Dialog.



  • Okay, und woran haperts jetzt noch? 🙂

    SendMessage und los.



  • Ich komme nicht klar... 😞
    Beim Anklicken des Buttons 'Konfig.übernehmen' im Kind-Dialog wird eine Nachricht an das Haupt-Dialog versendet. Diese Nachricht soll evtl. einen Nachrichtbearbeiter in Haupt-Dialog aufrufen. Was soll dieser machen?

    Um genauer zu sein: ich benutze die Funktion OnTimer(), in der ein Paar Methoden für die Anwendung aufgerufen wird. Nach Übernahme der Daten aus dem Kind-Dialog soll die Anwendung gestoppt, Daten erneut und Anwendung wieder gestartet werden.



  • Noch_Student schrieb:

    Ich komme nicht klar... 😞

    Okay, versuchen wir mal das zu ordnen...

    Beim Anklicken des Buttons 'Konfig.übernehmen' im Kind-Dialog wird eine Nachricht an das Haupt-Dialog versendet.

    Okay. Das klappt bei dir auch?

    Diese Nachricht soll evtl. einen Nachrichtbearbeiter in Haupt-Dialog aufrufen. Was soll dieser machen?

    Eventuell?? Die macht das IMMER. Immer wenn die Nachricht ankommt, wird die Funktion ausgeführt.

    Um genauer zu sein: ich benutze die Funktion OnTimer(), in der ein Paar Methoden für die Anwendung aufgerufen wird. Nach Übernahme der Daten aus dem Kind-Dialog soll die Anwendung gestoppt, Daten erneut und Anwendung wieder gestartet werden.

    Also machst du KillTimer, übernimmst und erneuerst die Daten und startest den Timer wieder. Klingt soweit gut.

    Wenn du jetzt immer noch keine Idee hast, kommen wir um Code nicht mehr drumherum. Dann musst du mal zeigen, was du versucht hast. (Aber bitte vorsortiert und nicht alle Quellcodes hier rein. 😉 )



  • Ich weiß nicht, was der Nachrichtbearbeiter machen soll.



  • Noch_Student schrieb:

    Ich weiß nicht, was der Nachrichtbearbeiter machen soll.

    Der soll genau das machen, was du als Reaktion auf deinen "Konfig übernehmen" Button erwartest - mit KillTimer() den laufenden Timer anhalten, Daten aus dem Kind-Dialog auslesen und an die richtige Stelle schreiben, und schließelich mit SetTimer() den Timer neu starten, damit die Anwendung weiterlaufen kann.



  • Leute, 🙂 🙂 🙂 🙂 🙂
    wie schön, dass ihr da seid! 👍 👍 👍 👍 👍


Anmelden zum Antworten