Beim nem anderen Forum haben die mir gesagt, dass ich einen gültigen Zeiger auf den Hauptdialog brauche. Dannach haben die nicht mehr geantwortet. Also frage ich euch: Wie bekomme ich den?
Vielleicht etwas zu dem Code: Ich versuche beim Schließen des einen Dialoges einen Haken in einen anderen Dialog zu machen.
wenn dein NichtmodalDlg ein "untergeordnetes" Fenster bzw wenn das Fenster als Haupt-Parent-Handle beim Create aufruf einen Pointer auf deinen Hauptdialog übergeben hast:
Ansonsten kriegst dus wahrscheinlich über AfxGetMainWnd(); oder so was ähnliches. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Gibt GetParent nicht nur den Zeiger zurück, den du vorher im Konstruktor entgegengenommen und (hoffentlich) an den Konstruktor von CWnd (respektive der von CWnd abgeleiteten Basisklasse) weitergegeben hast? -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Danke für euere Antworten. Aber jetzt kommt ein neues Propblem: Denn immer, wenn ich versuche, dass Fenster ein zweites Mal aufzurufen, schmiert mein Programm wieder ab. Woran kann das liegen?
sowas hatte ich auch schon öfter wahrscheinlich gibst du nicht wieder alles frei oder das geht doch nicht so ohne weiteres wie FloSoft meinte. In dem Fall dann funktioniert das, wenn du den konstruktor des aufzurufenden Dialoges änderst und ihm dann beim aufrufen ein zeiger auf den parentdialog mitgibst -- ...fleißig wie zwei Weißbrote
@Windalf, normal muss man den Konstruktor nicht ändern, beim Create aufruf kann man wndParent als letzten Parameter angeben... -- class God : public ChuckNorris { };
ach ja ist ja nicht modal, stimmt dann müsste das funzen dann ist der fehler bestimmt das der irgendwas "holt" z.b. getDC oder sowas und das Release vergisst oder sowas in der Art. Bei mir war das jedenfalls so gewesen. Da ist der mir immer abgeschmiert weil ich irgendwas vergessen hatte freizugeben -- ...fleißig wie zwei Weißbrote