<?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[Hauptdialog schließen]]></title><description><![CDATA[<p>Hi @all,</p>
<p>um mein Programm flexibel anzupassen, habe ich mir meine eigene MessageBox erzeugt. Aber wie kann ich mir einen Wert davon zurückgeben lassen?</p>
<p>Ich rufe in meinem Hauptdialog die Funktion BOOL MsgSenden(CString Msg)auf.</p>
<pre><code class="language-cpp">BOOL CHauptDlg::MsgSenden(CString Msg, BOOL Ok_Abbruch)
{
	CMsgBox MyDlg;
	if (Ok_Abbruch == FALSE)
		MyDlg.m_bOkAbbruch = FALSE;
	else
		MyDlg.m_bOkAbbruch = TRUE;
	MyDlg.m_strMessage = Msg;
	MyDlg.DoModal();

	if(MyDlg.OnOk2())   // hier das Problem, wie kriege ich zurück, dass dieser Button gedückt wurde.
		return TRUE;
	if(MyDlg.OnAbbruch())
		return FALSE;
}
</code></pre>
<p>Ich habe versucht OnOk2() einen BOOL Rückgabewert zu geben, aber er reagiert nicht drauf. OnOk2() ist auch schon als public deklariert.<br />
Rauskommen soll, das mit Click des Buttons nicht nur MyDlg, sondern das ganze Programm geschlossen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/62345/hauptdialog-schließen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 04 Jun 2026 01:13:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/62345.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Jan 2004 13:49:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 13:49:02 GMT]]></title><description><![CDATA[<p>Hi @all,</p>
<p>um mein Programm flexibel anzupassen, habe ich mir meine eigene MessageBox erzeugt. Aber wie kann ich mir einen Wert davon zurückgeben lassen?</p>
<p>Ich rufe in meinem Hauptdialog die Funktion BOOL MsgSenden(CString Msg)auf.</p>
<pre><code class="language-cpp">BOOL CHauptDlg::MsgSenden(CString Msg, BOOL Ok_Abbruch)
{
	CMsgBox MyDlg;
	if (Ok_Abbruch == FALSE)
		MyDlg.m_bOkAbbruch = FALSE;
	else
		MyDlg.m_bOkAbbruch = TRUE;
	MyDlg.m_strMessage = Msg;
	MyDlg.DoModal();

	if(MyDlg.OnOk2())   // hier das Problem, wie kriege ich zurück, dass dieser Button gedückt wurde.
		return TRUE;
	if(MyDlg.OnAbbruch())
		return FALSE;
}
</code></pre>
<p>Ich habe versucht OnOk2() einen BOOL Rückgabewert zu geben, aber er reagiert nicht drauf. OnOk2() ist auch schon als public deklariert.<br />
Rauskommen soll, das mit Click des Buttons nicht nur MyDlg, sondern das ganze Programm geschlossen wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441882</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 22 Jan 2004 13:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 13:55:54 GMT]]></title><description><![CDATA[<p>Die Dialogboxen geben nur IDOK und IDCANCEL zurück.<br />
Du kannst aber im Dialog eine int-Membervariable deklarieren und für jeden Button eine Funktion schreiben, die den int auf einen jeweiligen wert setzt. Nach DoModal fragst du dann über einen Funktion den intWert ab</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441892</guid><dc:creator><![CDATA[CLoop]]></dc:creator><pubDate>Thu, 22 Jan 2004 13:55:54 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:10:53 GMT]]></title><description><![CDATA[<p>Hab´s nun so probiert.</p>
<pre><code class="language-cpp">MyDlg.m_strMessage = Msg;
	MyDlg.DoModal();
	UpdateData(FALSE); 
	if(m_bFlag == TRUE)
		return TRUE;
	else
		return FALSE;
</code></pre>
<p>In MyDlg</p>
<pre><code class="language-cpp">void CMsgBox::OnOk2() 
{
	CHauptDlg MyFirstDlg;
	MyFirstDlg.m_bFlag = TRUE;
	CDialog::OnOK();
}
</code></pre>
<p>Aber warum um alles in der Welt wird die Boolsche Variable m_bFlag nicht auf TRUE gesetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441906</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:24:09 GMT]]></title><description><![CDATA[<p>Du erzeugst in dem zweiten Codefragment eine neue Instanz vom Hauptdialog und die fragst du später gar nicht ab. Wenn du das so machen willst, musst du einen Zeiger auf deinen Hauptdialog übergeben, z.B. im überschriebenen Konstruktor (nicht die zweite Zeile vom Standardkonstruktor vergessen einzubinden). Ich würd eher zu meiner Methode tendieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441917</guid><dc:creator><![CDATA[CLoop]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:24:09 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:25:53 GMT]]></title><description><![CDATA[<p>Kannst Du deine Methode etwas genauer beschreiben.<br />
Hab ich nicht so ganz verstanden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/441920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441920</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:25:53 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:32:05 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Eine MSG-Box gibt nur IDOK oder IDCANCEL zurück.</p>
<pre><code class="language-cpp">if(MyDlg.DoModal() == IDOK)
{
   return TRUE; // wurde OK gedrückt
}
return FALSE; // wurde Abbrechen gedrückt
</code></pre>
<p>Was hat eigentlich OnOk2 in einer MSG-Box zu suchen.</p>
<p>tomb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441925</guid><dc:creator><![CDATA[tomb]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:38:55 GMT]]></title><description><![CDATA[<p>Also, so, wie ich dich verstanden hab, willst du nen Dialog öffnen und abfragen, welcher Button zum schließen gedrückt wurde.</p>
<pre><code class="language-cpp">////////Im Hauptfenster

CMyDialog dlg;
dlg.DoModal();
switch(dlg.GetResult())
{
   case 0:
        .....
   break;
    /// etc.
}

//////////in CMyDialog

int m_iResult;

int GetResult(){ return m_iResult;}/////Per Klassenassistent

OnBn1(){ m_iResult=1; OnOK();}//////per KLassenassistent
OnBn2(){ m_iResult=2; OnOK();}////////per Klassenassistent
/////etc.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/441931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441931</guid><dc:creator><![CDATA[CLoop]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:40:23 GMT]]></title><description><![CDATA[<p>Hi <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5399">@tomb</a>,</p>
<p>tomb schrieb:</p>
<blockquote>
<p>Was hat eigentlich OnOk2 in einer MSG-Box zu suchen.</p>
</blockquote>
<p>Es ist nicht die vorgefertigte MSG-Box von Microsoft. Ich habe den Dialog selber geschrieben, damit ich z.B. die Farbe der MSG-Box selber bestimmen kann.<br />
OnOk2() ist mein Button im Dialog, der gedrückt wird. Es soll sich in ungefähr so verhalten, wie der OK-Button der normalen MSG-Box bzw. in diesem Fall einfach das gesammte Programm schließen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/441935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441935</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Hauptdialog schließen on Thu, 22 Jan 2004 14:51:41 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/1905">@CLoop</a></p>
<p>Danke, das ist genau das was ich gesucht habe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/441944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/441944</guid><dc:creator><![CDATA[Trikor]]></dc:creator><pubDate>Thu, 22 Jan 2004 14:51:41 GMT</pubDate></item></channel></rss>