<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Schließen von modalen Dialogfeldern]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe ein Programm, in dem mehrere Modale Dialogfelder (Dialogfeldklassen) nacheinander in der jew. nächsten Klasse geöffnet werden:</p>
<p>Klasse1 -&gt; Klasse2 -&gt; Klasse3 -&gt; Klasse4</p>
<p>Ist es möglich, von Klasse 4 aus direkt wieder zu Klasse 1 zu wechseln. Mit OnOK() schließt sich ja leider nur das letzte Fenster. Gibt es keine Möglichkeit, die Anderen bei einer Buttonbetätigung automatisch zu veranlassen, sich zu schließen.</p>
<p>Gruß und Danke,<br />
Krommi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177327/schließen-von-modalen-dialogfeldern</link><generator>RSS for Node</generator><lastBuildDate>Wed, 22 Apr 2026 01:36:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177327.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Mar 2007 10:28:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 10:28:19 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe ein Programm, in dem mehrere Modale Dialogfelder (Dialogfeldklassen) nacheinander in der jew. nächsten Klasse geöffnet werden:</p>
<p>Klasse1 -&gt; Klasse2 -&gt; Klasse3 -&gt; Klasse4</p>
<p>Ist es möglich, von Klasse 4 aus direkt wieder zu Klasse 1 zu wechseln. Mit OnOK() schließt sich ja leider nur das letzte Fenster. Gibt es keine Möglichkeit, die Anderen bei einer Buttonbetätigung automatisch zu veranlassen, sich zu schließen.</p>
<p>Gruß und Danke,<br />
Krommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255891</guid><dc:creator><![CDATA[Krommi]]></dc:creator><pubDate>Fri, 30 Mar 2007 10:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 11:03:47 GMT]]></title><description><![CDATA[<p>Doch klar.</p>
<p>z.B. so:</p>
<pre><code class="language-cpp">// In Dlg1
CDeinDlg2 dlg;
if (IDOK == dlg.DoModal())
{
// Hier nicht, sonst ist der auch zu.
// CDialog::OnOK();
}
</code></pre>
<pre><code class="language-cpp">// In Dlg2
CDeinDlg3 dlg;
if (IDOK == dlg.DoModal())
{
CDialog::OnOK();
}
</code></pre>
<pre><code class="language-cpp">// In Dlg3
CDeinDlg4 dlg;
if (IDOK == dlg.DoModal())
{
CDialog::OnOK();
}
</code></pre>
<p>Schließt du nun Dlg4 mit OK, gehen alle bis auf den ersten zu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255907</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 30 Mar 2007 11:03:47 GMT</pubDate></item><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 12:09:04 GMT]]></title><description><![CDATA[<p>Das sieht an sich schon ganz gut aus...habe es gerade mal ausprobiert.</p>
<p>Mich stört da allerdings eine Kleinigkeit:<br />
Der Schließvorgang ist sehr langsam, man sieht also jedes einzelne Fenster, bevor das letzte übrig bleibt. Hmm...wie wäre denn die Möglichkeit, das erste Fenster &quot;nicht modal&quot; zu öffnen und alle Restlichen im Hintergrund zu schließen?</p>
<p>Hab allerdings keine Ahnung, wie ich ein Fenster &quot;nicht modal&quot; öffne:-)</p>
<p>Gruß,<br />
Krommi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1255946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255946</guid><dc:creator><![CDATA[Krommi]]></dc:creator><pubDate>Fri, 30 Mar 2007 12:09:04 GMT</pubDate></item><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 12:17:41 GMT]]></title><description><![CDATA[<p>Warum lässt du die Dialoge überhaupt offen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<pre><code class="language-cpp">CDeinDlg2 dlg;
if (IDOK == dlg.DoModal())
{
    CDialog::OnOK();
    CDeinDlg3 dlg3;
    if (IDOK == dlg3.DoModal())
    {
        // Kannst du dir sicher denken. ;)
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1255955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1255955</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 30 Mar 2007 12:17:41 GMT</pubDate></item><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 13:50:56 GMT]]></title><description><![CDATA[<p>Habe es versucht, aber das funktioniert nicht.</p>
<p>Ich kann kein Fenster schließen, von dem aus ein modales Fenster geöffnet wurde. Wenn ich z.B. in Dialog2 die Funktion Dialog3.DoModal() aufrufe, kann ich danach nicht den Dialog2 mit OnOK() schließen, weil diese Funktion erst abgearbeitet wird, wenn man aus DoModal() zurückkehrt (also das immer das letzte Fenster schließt).</p>
<p>Falls ich etwas falsch verstanden habe, korrigiere mich bitte.</p>
<p>Ansonsten sehe ich als einzige Möglichkeit, das Fenster &quot;nicht modal&quot; zu öffnen und dann die ganzen Modalen zu schließen. Aber wie öffnen ich denn nun ein Fenster &quot;nicht modal&quot; ???</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1256041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256041</guid><dc:creator><![CDATA[Krommi]]></dc:creator><pubDate>Fri, 30 Mar 2007 13:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Schließen von modalen Dialogfeldern on Fri, 30 Mar 2007 14:34:10 GMT]]></title><description><![CDATA[<p>Ah, dann müssen wir doch zurück zur ersten Version...</p>
<pre><code class="language-cpp">// In Dlg1
CDeinDlg2 dlg;
if (IDOK == dlg.DoModal())
{
// Hier nicht, sonst ist der auch zu.
// CDialog::OnOK();
}
</code></pre>
<pre><code class="language-cpp">// In Dlg2
CDeinDlg3 dlg;
CDialog::OnOK();
dlg.DoModal();
</code></pre>
<pre><code class="language-cpp">// In Dlg3
CDeinDlg4 dlg;
CDialog::OnOK();
dlg.DoModal();
</code></pre>
<p>Du musst halt immer erst den aktuellen zumachen, dann erst den neuen auf.</p>
<p>Dies hier müsste auch gehen:</p>
<pre><code class="language-cpp">// In Dlg1
CDeinDlg2 dlg;
dlg.DoModal();
CDeinDlg3 dlg3;
dlg3.DoModal();
CDeinDlg4 dlg4;
dlg4.DoModal();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1256082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1256082</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 30 Mar 2007 14:34:10 GMT</pubDate></item></channel></rss>