Dialoge verknüpfen
-
Einen wunderschönen guten Morgen ins Forum,
ich habe ein Problem:
Ich möchte, dass wenn mein Programm mit seiner Ausführung fertig ist ein anderes Dialogfeld aufgeht wo dann das Ergebnis ausgegeben wird.
Wie kann ich das am einfachsten machen?
-
Du erstellst eine neue Dialog-Ressource und erstellst dafür eine neue abgeleitete Klasse von CDialog. Dann includierst Du die Header-Datei dieser Klasse in Deine Hauptdialogklasse (oder Anwendung). Bei OnClose oder wo auch immer zeigst Du dann diesen Abschlussdialog, am einfachsten modal.
void CHauptDialog::OnClose() { CDialogResultat dlg; int response = dlg.DoModal(); if (response == "IDOK") {}; else if (response == "IDCANCEL") {}; CDialog::OnClose() }In CDialogResultat erledigst Du dann die Ergebnisanzeige. Dort auch den Header des Hauptdialogs einbinden, da Du sicher auf dessen Membervariablen zugreifst.
-
OnClose geht nicht. Denn OnClose wird nur aufgerufen, wenn der Schließen Schalter angeklickt wurde. OnClose wird auch nicht aufgreifen, wenn direkt das Fenster zerstört wird.
OnDestroy wäre hier der Punkt.
Die Frage ist ob das zitierte Programm ein anderes (sprich zweiter Prozess ist) oder ob Du Dein eigenes Programm meinst.
Wenn es Dein eigenes Programm ist, dann weißt Du doch auch wann es fertig ist und wie Du es beendest. Hier würde ich den Punkt ansetzen an dem Du die Infos anzeigst.
-
Bei OnClose oder wo auch immer
Ja, vielleicht ist OnDestroy(...) die bessere Funktion, war nur ein Beispiel auf die Schnelle.