<?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[Wie kann ich meine Dialogfenster unterscheiden?]]></title><description><![CDATA[<p>Hallo.<br />
In meinem MFC-Programm erzeuge ich durch einen Mausklick zwei Dialogfenster mit jeweils einem „OK“ und einem „Abbrechen“ Button.</p>
<p>Wenn ich nun auf den „OK“-Button in einem Dialogfenster klicke schicke ich mit<br />
m_pView-&gt;PostMessage(WM_GOODBYE, IDOK);</p>
<p>eine Message an das übergeordnete Fenster.</p>
<p>Im Übergeordneten Fenster werte ich die Message mit<br />
LRESULT CEx07aView::OnGoodbye(WPARAM wParam, LPARAM lParam)<br />
{<br />
TRACE(&quot;CEx07aView::OnGoodbye %x, %lx\n&quot;, wParam, lParam);</p>
<p>m_pDlg[0]-&gt;DestroyWindow();<br />
m_pDlg[1]-&gt;DestroyWindow();</p>
<p>return 0L;<br />
}</p>
<p>aus und schliesse beide Dialogfenster.</p>
<p>Wie kann ich herausbekommen in welchem Dialogfenster ich den „OK“-Button geklickt habe um nur dieses Dialogfenster zu schliessen?</p>
<p>Die „TRACE(&quot;C...“ Anweisung zeigt mir mit &quot;wParam&quot; nur an welchen Button ich angeklickt habe aber nicht in welchem Dialogfenster er sich befindet.<br />
Nur wenn ich weis in welchem der Dialogfenster ich den Button angeklickt habe kann ich das entsprechende Dialogfenster schliessen.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160037/wie-kann-ich-meine-dialogfenster-unterscheiden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 10:28:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160037.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 21 Sep 2006 11:19:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:19:51 GMT]]></title><description><![CDATA[<p>Hallo.<br />
In meinem MFC-Programm erzeuge ich durch einen Mausklick zwei Dialogfenster mit jeweils einem „OK“ und einem „Abbrechen“ Button.</p>
<p>Wenn ich nun auf den „OK“-Button in einem Dialogfenster klicke schicke ich mit<br />
m_pView-&gt;PostMessage(WM_GOODBYE, IDOK);</p>
<p>eine Message an das übergeordnete Fenster.</p>
<p>Im Übergeordneten Fenster werte ich die Message mit<br />
LRESULT CEx07aView::OnGoodbye(WPARAM wParam, LPARAM lParam)<br />
{<br />
TRACE(&quot;CEx07aView::OnGoodbye %x, %lx\n&quot;, wParam, lParam);</p>
<p>m_pDlg[0]-&gt;DestroyWindow();<br />
m_pDlg[1]-&gt;DestroyWindow();</p>
<p>return 0L;<br />
}</p>
<p>aus und schliesse beide Dialogfenster.</p>
<p>Wie kann ich herausbekommen in welchem Dialogfenster ich den „OK“-Button geklickt habe um nur dieses Dialogfenster zu schliessen?</p>
<p>Die „TRACE(&quot;C...“ Anweisung zeigt mir mit &quot;wParam&quot; nur an welchen Button ich angeklickt habe aber nicht in welchem Dialogfenster er sich befindet.<br />
Nur wenn ich weis in welchem der Dialogfenster ich den Button angeklickt habe kann ich das entsprechende Dialogfenster schliessen.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141728</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:34:46 GMT]]></title><description><![CDATA[<p>Warum schreibst du nicht einfach OnOK(); in die Funktion, die aufgerufen wird, wenn man auf den Button klickt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141740</guid><dc:creator><![CDATA[OnOK]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:34:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:37:20 GMT]]></title><description><![CDATA[<p>OnOK schrieb:</p>
<blockquote>
<p>Warum schreibst du nicht einfach OnOK(); in die Funktion, die aufgerufen wird, wenn man auf den Button klickt?</p>
</blockquote>
<p>Und wenns die OnOK ist, dann besser CDialog::OnOK(); sonst gibts nen Stackoverflow. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141742</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141742</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:37:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:50:28 GMT]]></title><description><![CDATA[<p>Hallo OnOK.<br />
Ich hätte wohl dazu schreiben sollen das es sich um Nicht-Modale Dialogfenster handelt.<br />
In meinem &quot;Inside Visual C++&quot; Buch steht das mann bei Nicht-Modalen Dialogfenstern<br />
auf keinen Fall OnOK und OnCancel aufrufen soll.<br />
Man soll eine Message an die zugehörige Ansicht schicken und die übernimmt dann das löschen.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141755</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:55:16 GMT]]></title><description><![CDATA[<p>Du kannst ja auch ne eigene Message definieren.<br />
WM_GOODBYE_1<br />
und<br />
WM_GOODBYE_2<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Oder, du gibst this mit statt IDOK.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141756</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:55:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 11:56:16 GMT]]></title><description><![CDATA[<p>Hey, ja das sollte gehen.<br />
Bin nicht darauf gekommen.<br />
Danke.<br />
Werde ich ausprobieren.<br />
Es würde mich aber trozdem interesieren ob es eine möglichkeit gibt die Dialogfenster noch anders zu unterscheiden mit nur eine WM_GOODBYE.<br />
Trozdem vielen Dank.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141759</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Thu, 21 Sep 2006 11:56:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 12:02:37 GMT]]></title><description><![CDATA[<p>Nein, Nein, Nein das geht nicht.<br />
Ich erzeuge zwar zwei Dialogfenster aber es sind zwei Instanzen der selben Klasse.<br />
Beide greifen also auf das selbe WM_GOODBYE zu und ich muss in der<br />
einen WM_GOODBYE unterscheiden welche Instanz die Message geschickt hat.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141762</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Thu, 21 Sep 2006 12:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 12:43:17 GMT]]></title><description><![CDATA[<p>Hallo Estartu<br />
Ich habe das mal mit der Übergabe von „this“ versucht.<br />
“m_pView-&gt;PostMessage(WM_GOODBYE, this);”<br />
Bekomme die Fehlermeldung „Konvertierung des Parameters 2 von ‚class CEx07aDialog *const’ in ‚unsignd int’nicht möglich.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141794</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Thu, 21 Sep 2006 12:43:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 12:57:59 GMT]]></title><description><![CDATA[<p>Ups, hatte ich nicht dran gedacht, sorry.<br />
Aber theretisch kannst du einfach ne 1 oder ne 2 mitgeben. Oder die Dialog IDD. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141809</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Thu, 21 Sep 2006 12:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Thu, 21 Sep 2006 13:22:29 GMT]]></title><description><![CDATA[<p>Kannst aber Casten</p>
<p>m_pView-&gt;PostMessage(WM_GOODBYE, 0, (LPARAM)this);</p>
<p>und in der Message Funktion wieder zurück, (CWnd*) lParam, ein Pointer sollte nichts anderes sein als ein 4 Byte Wert.<br />
Solltest aber bei LParam casten nicht bei WParam da dieser bei Win95 ? auch nur 2 Byte groß sein darf.</p>
<p>Damit kannst Du bei bedarf direkt auf den Dialog zugreifen.</p>
<p>Also in Deinem Fall sollte es so gehen :</p>
<p>CWnd* pDia = (CWnd*) lParam;<br />
pDia-&gt;DestroyWindow();</p>
<p>gruss<br />
Marcus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1141838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1141838</guid><dc:creator><![CDATA[UserMarcus]]></dc:creator><pubDate>Thu, 21 Sep 2006 13:22:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie kann ich meine Dialogfenster unterscheiden? on Fri, 22 Sep 2006 14:39:43 GMT]]></title><description><![CDATA[<p>Hallo UserMarcus.</p>
<p>Das mit dem this übergeben und dann caste’n funktioniert super.<br />
Ich kann meine verschiedenen Dialogfenster unterscheiden und dementsprechend auch löschen oder sonst was machen.<br />
Vielen Dank.</p>
<p>plutonium2</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1142631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1142631</guid><dc:creator><![CDATA[plutonium2]]></dc:creator><pubDate>Fri, 22 Sep 2006 14:39:43 GMT</pubDate></item></channel></rss>