Speichern von Member-Variablen nur in Init Instance Funtkion?



  • Hallo!
    Ich möchte mit einem OK Button Daten in einer Datei speichern. Allerdings soll vorher mit einer Messagebos abgefragt werden ob die Daten wirklich gespeichert werden sollen oder ob die Eingabe noch mal verändert werden soll. Ich habe weil in der InitInstance Funktion das Programm immer sofort beendet wurde(MessageBox war kurz da und war dann halt weg weil das Programm zu Ende war) einen neuen Button gemacht und den Quelltext einfach rüberkopiert aber so verändert das es keine Fehlermeldungen mehr gibt(wegen der dlg und der app Klasse). Jetzt speichert das Programm die Daten aber nicht mehr(das heißt nur die Daten von den Membervariablen nicht mehr). Weiß jemand wodrand das liegen könnte. Bin dür jede Idee dankbar. (Kann auch noch mal meinen Quelltext hierrein machen weiß jetzt aber überhaupt nicht welcher Teil davon für das Problem wichtig ist bin nämlich noch Anfänger) MfG Buddy



  • Hi,

    Du erstellst eine Funktion, die aufgerufen wird, wenn man auf den Button klickt und speicherst dann, wenn der User bei der MessageBox auf ok (oder sonst was) klickt, die Daten.

    Wenn du die Daten in InitInstance speichern willst, musst du die m_pMainWnd Membervariable auf NULL (oder ein anderes Fenster) setzten (sie wird normalerweise auf den Dialog gesetzt).

    Grüße Rapha



  • Hi,
    Ich ich will ja grade nicht mit der InitInstance Funktion speichern. Hast du da vielleicht auch nen Tip. Mit dem Button hattest du übigens recht.



  • Ich nehm mal an, dass du die Daten speichern willst, wenn der User auf den Button OK (ID: IDOK) klickt.
    Wenn dies so ist, überschreibe einfach die Methode CDialog::OnOk() (Von Hand, oder indem du auf den OK-Button Doppelklickst).
    Dann kannst du die Daten speichern:

    void CDeinDlg::OnOk()
    {
       // speichere die Daten
       CDialog::OnOK(); // Dialog beenden
    }
    

    Grüße Rapha


Anmelden zum Antworten