<?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[Sendmessage von DialogA -&amp;gt; DialogB]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner Andwendung zwei nicht-modale Dialoge eingebettet, die mit Hilfe von Messages untereinander kommunizieren sollen. Dafür habe ich folgendes gemacht:</p>
<p>Der Dialog der die Nachricht empfangen soll:</p>
<p>dlgB.h:</p>
<pre><code class="language-cpp">(...)
    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
(...)
</code></pre>
<p>dlgB.cpp</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP( ... )
    ON_MESSAGE(WM_USER+1, OnMyMessage)
END_MESSAGE_MAP()

   (...)

LRESULT CDlgB::OnMyMessage(WPARAM wParam, LPARAM lParam)
{

    return 0;
}
</code></pre>
<p>Nun rufe ich sendmessage aus dialogA auf:</p>
<p>dlgA.cpp</p>
<pre><code class="language-cpp">SendMessage(WM_USER,0,0);
</code></pre>
<p>Leider wird die entsprechende Funktion nicht durchlaufen. Wenn ich die Zeile irgendwo im code vom DialogB aufrufe funktioniert es.</p>
<p>Ich habe auch noch versuche mit ::SendMessage und PostMessage gemacht. Da passiert auch nichts.</p>
<p>D.h. das die Nachricht vom DialogA nicht beim DialogB ankommt, aber warum ... ?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145308/sendmessage-von-dialoga-gt-dialogb</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 00:11:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145308.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Apr 2006 17:39:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sendmessage von DialogA -&amp;gt; DialogB on Wed, 26 Apr 2006 17:39:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe in meiner Andwendung zwei nicht-modale Dialoge eingebettet, die mit Hilfe von Messages untereinander kommunizieren sollen. Dafür habe ich folgendes gemacht:</p>
<p>Der Dialog der die Nachricht empfangen soll:</p>
<p>dlgB.h:</p>
<pre><code class="language-cpp">(...)
    afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
(...)
</code></pre>
<p>dlgB.cpp</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP( ... )
    ON_MESSAGE(WM_USER+1, OnMyMessage)
END_MESSAGE_MAP()

   (...)

LRESULT CDlgB::OnMyMessage(WPARAM wParam, LPARAM lParam)
{

    return 0;
}
</code></pre>
<p>Nun rufe ich sendmessage aus dialogA auf:</p>
<p>dlgA.cpp</p>
<pre><code class="language-cpp">SendMessage(WM_USER,0,0);
</code></pre>
<p>Leider wird die entsprechende Funktion nicht durchlaufen. Wenn ich die Zeile irgendwo im code vom DialogB aufrufe funktioniert es.</p>
<p>Ich habe auch noch versuche mit ::SendMessage und PostMessage gemacht. Da passiert auch nichts.</p>
<p>D.h. das die Nachricht vom DialogA nicht beim DialogB ankommt, aber warum ... ?</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045886</guid><dc:creator><![CDATA[edm]]></dc:creator><pubDate>Wed, 26 Apr 2006 17:39:22 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage von DialogA -&amp;gt; DialogB on Wed, 26 Apr 2006 17:53:57 GMT]]></title><description><![CDATA[<p>Weil du WM_USER sendest, aber WM_USER+1 empfangen willst. Oder war das grad ein Tippfehler? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Edit: Und woher weiß dein SendMessage wohin die Nachricht verschickt werden soll? Muss man da nicht hWndDialogB-&gt;SendMessage(...) machen?</p>
<p>Gruß Brainiac</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045891</guid><dc:creator><![CDATA[Brainiac]]></dc:creator><pubDate>Wed, 26 Apr 2006 17:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage von DialogA -&amp;gt; DialogB on Wed, 26 Apr 2006 18:07:43 GMT]]></title><description><![CDATA[<p>Das war ein Tippfehler.</p>
<p>Das mit dem Hwnd habe ich mir auch schon überlegt. Weiss aber nicht genau wie ich das anstellen soll. Habe es so versucht, hat aber nicht funktioniert:</p>
<pre><code class="language-cpp">CDlgB x;
HWND hWnd = x.GetSafeHwnd();
::SendMessage(hWnd, WM_USER+1,0,0)
</code></pre>
<p>Hole ich so überhaupt das richtige handle??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045905</guid><dc:creator><![CDATA[edm]]></dc:creator><pubDate>Wed, 26 Apr 2006 18:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage von DialogA -&amp;gt; DialogB on Wed, 26 Apr 2006 18:25:12 GMT]]></title><description><![CDATA[<p>Nein, so bekommst du auf jeden Fall nicht das richtige Handle.</p>
<p>Wie werden denn die zwei Dialoge erstellt? Werden beide von einem Hauptfenster erstellt, oder ist einer dem anderen übergeordnet?<br />
Am besten macht man so was nämlich, indem man das Handle des Dialogs bei seiner Erstellung in der übergeordneten Klasse (Fenster) speichert. Dann kann der andere Dialog per GetParent(), AfxGetApp() o.ä. einen Zeiger auf die übergeordnete Klasse bekommen und von dieser dann das richtige Handle.</p>
<p>Gruß Brainiac</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045912</guid><dc:creator><![CDATA[Brainiac]]></dc:creator><pubDate>Wed, 26 Apr 2006 18:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage von DialogA -&amp;gt; DialogB on Wed, 26 Apr 2006 19:28:25 GMT]]></title><description><![CDATA[<p>Jetzt funktioniert es! Lag wie Du gesagt hast am falschen Handle.<br />
Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1045963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1045963</guid><dc:creator><![CDATA[edm]]></dc:creator><pubDate>Wed, 26 Apr 2006 19:28:25 GMT</pubDate></item></channel></rss>