<?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[Drei Dialogfragen]]></title><description><![CDATA[<p>1. Ich habe in meine C..View einen Dialog als Membervariable und muss nun an einer Stelle prüfen, ob dieser Dialog gerade offen ist oder nicht. Wie mache ich das?</p>
<p>2. Ist es OK, den Dialog, wenn ich ihn von außen beende, einfach mit EndDialog(...) zu schließen oder sollte man da eine andere Funktion bevorzugen?</p>
<p>3. Ich starte einen Dialog aus einem (Arbeits-)Thread heraus. Leider ist dieser dann nicht im Vordergrund. Wie mache ich ihn zum obersten Fenster?<br />
<em>[Wie mache ich zum obersten Fenster meiner Anwendung und wie zum obersten Fenster allgemein in Windows?]</em></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/168172/drei-dialogfragen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 03:36:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/168172.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Dec 2006 11:08:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Drei Dialogfragen on Tue, 19 Dec 2006 11:08:49 GMT]]></title><description><![CDATA[<p>1. Ich habe in meine C..View einen Dialog als Membervariable und muss nun an einer Stelle prüfen, ob dieser Dialog gerade offen ist oder nicht. Wie mache ich das?</p>
<p>2. Ist es OK, den Dialog, wenn ich ihn von außen beende, einfach mit EndDialog(...) zu schließen oder sollte man da eine andere Funktion bevorzugen?</p>
<p>3. Ich starte einen Dialog aus einem (Arbeits-)Thread heraus. Leider ist dieser dann nicht im Vordergrund. Wie mache ich ihn zum obersten Fenster?<br />
<em>[Wie mache ich zum obersten Fenster meiner Anwendung und wie zum obersten Fenster allgemein in Windows?]</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194645</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Tue, 19 Dec 2006 11:08:49 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Tue, 19 Dec 2006 11:21:40 GMT]]></title><description><![CDATA[<p>1. ein dialog hat immer ein hWnd prüfe das ob es gültig ist</p>
<pre><code>if(m_MyDlg.m_hWnd != NULL)
</code></pre>
<p>2. EndDialog ist zwar winapi wenn mich nicht alles täuscht aber warum soll man es nicht verwenden können,</p>
<pre><code>SendMessage(hwnd,WM_DLGCANCEL,0,0)
</code></pre>
<p>zum schließenden Dialog wäre auch ne möglichkeit.</p>
<p>3. SetForegroundWindow bringt das Fenster in den Fordergrund</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194655</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Tue, 19 Dec 2006 11:21:40 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Tue, 19 Dec 2006 11:33:23 GMT]]></title><description><![CDATA[<p>Evolver schrieb:</p>
<blockquote>
<p>1. Ich habe in meine C..View einen Dialog als Membervariable und muss nun an einer Stelle prüfen, ob dieser Dialog gerade offen ist oder nicht. Wie mache ich das?</p>
</blockquote>
<p>Für mich wäre hier schon die Frage: Modal oder nicht. Wenn Modal, warum willst Du wissen ob der Dialog offen ist?<br />
Denn in diesem Fal läuft ja eine eigene Nachrichtenschleife und jedes andere Fenster (Mainframe) könnte kontrollieren ob es gerade per EnableWndow deaktiviert wurde weil ein Dialog aupoppt.</p>
<p>Evolver schrieb:</p>
<blockquote>
<p>2. Ist es OK, den Dialog, wenn ich ihn von außen beende, einfach mit EndDialog(...) zu schließen oder sollte man da eine andere Funktion bevorzugen?</p>
</blockquote>
<p>Modal oder nicht? Modale Dialoge müssen unbedingt mit EndDialog beendet werden. (BTW <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9213">@LowFly</a>, das ist auch eine Memberfunktion in der MFC!)</p>
<p>Evolver schrieb:</p>
<blockquote>
<p>3. Ich starte einen Dialog aus einem (Arbeits-)Thread heraus. Leider ist dieser dann nicht im Vordergrund. Wie mache ich ihn zum obersten Fenster?</p>
</blockquote>
<p>Du könntest das bestehende CMainFrame Window, oder den bestehenden Dialog einfach als Parent angeben. Dann wird automatisch korrekt kaskadiert. Ob anderer Thread oder nicht spielt keine Rolle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1194661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1194661</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 19 Dec 2006 11:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Wed, 20 Dec 2006 11:24:41 GMT]]></title><description><![CDATA[<p>SetForgroundWindow erzeugt beim Ausführen leider immer einen Fehler (der Debugger meckert, sagt mir etwas von '<em>User Breakpoint</em>' nach der Stelle des Aufrufens).</p>
<p>Wenn ich einen Parent angeben will, brauche ich einen CWnd-Zeiger, der mir aber eigentlich nicht zur Verfügung steht. Aber ein FensterHandle hätte ich anzubieten. Kann ich damit auch irgendwie den Parent festlegen, um das gewünschte Resultat zu erhalten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195296</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Wed, 20 Dec 2006 11:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Thu, 21 Dec 2006 10:09:53 GMT]]></title><description><![CDATA[<p>Weiß denn niemand Rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195941</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Thu, 21 Dec 2006 10:42:55 GMT]]></title><description><![CDATA[<p>Beschäftige dich doch mal mit den Basics:<br />
1. Wie bekomme ich ein CWnd von einem HWND?<br />
Mit CWnd::FromHandle!<br />
2. Mein Programm stürzt ab, warum hilft mir keiner?<br />
Weil Du keinen Code zeigst und uns nicht sagst in welchem Kontext (Stracktrace) es kracht!</p>
<p>Just my 2 cents! :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1195966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1195966</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 21 Dec 2006 10:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Thu, 21 Dec 2006 14:21:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">CDlgConnectionAsk askDlg;
CWnd parent;
parent.FromHandle(OuterThis-&gt;mParent-&gt;mWindowHandle);
askDlg.SetParent(&amp;parent);
int dlgReturnID = askDlg.DoModal();
</code></pre>
<p>Der Code steht nun in meinem Thread und bricht ebenso zur Laufzeit ab, mit selber Meldung wie bei SetForgroundWindow. <em>(Lasse ich den Fehler ignorieren, so wird danach der Dialog wie gewünscht im Vordergrund angezeigt.)</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196152</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Thu, 21 Dec 2006 14:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Thu, 21 Dec 2006 15:20:33 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Lies doch mal bitte ein Sückchen Doku!<br />
1. SetParent kann nur auf ein bestehendes Fenster ausgeführt werden!<br />
2. Dann sag uns doch mal wo es kracht. Es ist mit Sicherheit eine Stelle an der ein m_hWnd!=NULL erwartet wird.</p>
<pre><code class="language-cpp">CWnd *pPrarent = CWnd::FromHandle(OuterThis-&gt;mParent-&gt;mWindowHandle);
CMyDialog askDialog(pParent);
int dlgReturnID = askDlg.DoModal();
</code></pre>
<p>:xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196180</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 21 Dec 2006 15:20:33 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Thu, 21 Dec 2006 18:20:18 GMT]]></title><description><![CDATA[<p>Ah, mit deinem Code passt dieser Teil jetzt. Leider tritt ein neues Problem auf. Bitte nicht beschweren, ich denke Code zu posten bringt nur bedingt etwas, es ist wohl eher wieder eine Grundsatzfrage. Falls ich mich täusche, sagen!</p>
<p>Also es kann passieren, dass ein zum Zeitpunkt des Öffnens von obigem Dialog [D1] ein anderer modaler Dialog [D2] geöffnet ist (dieser wird aus der C..View heraus erstellt). Schließe ich nun D1, so ist der Fokus auf meinem Hauptfenster und nicht auf dem modalen Dialog D2. Ich kann nun im Hauptfenster arbeiten, obwohl ein modaler Dialog offen ist! Wie kann ich dies verhindern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196288</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Thu, 21 Dec 2006 18:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Sat, 23 Dec 2006 10:46:10 GMT]]></title><description><![CDATA[<p>Es wäre nichtmal so schlimm, dass sich der Dialog dann wie ein nichtmodaler verhält, aber natürlich liegt dann ein Fehlverhalten vor und es kann zu damit verbundenen Programmfehlern kommen.<br />
Schließe ich beispielsweise das Hauptfenster, wenn der Dialog noch offen ist, meldet mir der Debugger einen Fehler in der Funktion CWnd::RunModalLoop und ich schätze der passiert genau dort, wo versucht wird den Dialog zu schließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196921</guid><dc:creator><![CDATA[Evolver]]></dc:creator><pubDate>Sat, 23 Dec 2006 10:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Drei Dialogfragen on Sat, 23 Dec 2006 12:22:03 GMT]]></title><description><![CDATA[<p>Auch hier bringt dich lesen weiter:<br />
Jeder Dialog hat einen Initialisierungsparameter, einen Zeiger auf das Parent Window.<br />
Ich verstehe nur nicht ganz wie ein neurer modaler Dialog geöffnet werden kann der separat geschlossen werden kann? Modal, heißt eben, kein anderes Fenster darf aktiv sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1196943</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1196943</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 23 Dec 2006 12:22:03 GMT</pubDate></item></channel></rss>