<?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 Menüpunkt an Ansichtsklasse]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine SDI-Anwendung mit CFormView (<a href="http://VC++.net" rel="nofollow">VC++.net</a>).</p>
<p>In TestView.cpp habe ich eine User-Nachricht zum Füllen einer Strukturansicht definiert.</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP(CTestView, CFormView)
  ON_MESSAGE(WM_MENUE_TREE, OnFillMenueTree)

LRESULT CTestView::OnFillMenueTree( WPARAM sprache, LPARAM lParam )
{
...
}
</code></pre>
<p>Über einen Button kann ich jetzt eine entsprechende Nachricht generieren.</p>
<pre><code class="language-cpp">void CTestView::OnBnClickedButton1()
{
  // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
  SendMessage( WM_MENUE_TREE, i_sprache, 0L );
</code></pre>
<p>Das funktioniert so weit und meine Strukturansicht wird gefüllt. Ich möchte diese Nachricht aber auch generieren, wenn ich über die Menüleiste einen Menüpunkt (z.B. Sprache-&gt;Deutsch) anwähle.</p>
<p>[cpp]void CTestApp::OnSpracheDeutsch()<br />
{<br />
<em>SendMessage( WM_MENUE_TREE, i_sprache, 0L );</em>[/cpp]</p>
<p>In CTestApp führt SendMessage zu der Fehlermeldung:<br />
error C2660: 'SendMessageA': Funktion akzeptiert keine 3 Argumente</p>
<p>Wo liegt der Fehler???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83793/sendmessage-von-menüpunkt-an-ansichtsklasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 06:15:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83793.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Aug 2004 14:19:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SendMessage von Menüpunkt an Ansichtsklasse on Tue, 24 Aug 2004 14:19:14 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe eine SDI-Anwendung mit CFormView (<a href="http://VC++.net" rel="nofollow">VC++.net</a>).</p>
<p>In TestView.cpp habe ich eine User-Nachricht zum Füllen einer Strukturansicht definiert.</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP(CTestView, CFormView)
  ON_MESSAGE(WM_MENUE_TREE, OnFillMenueTree)

LRESULT CTestView::OnFillMenueTree( WPARAM sprache, LPARAM lParam )
{
...
}
</code></pre>
<p>Über einen Button kann ich jetzt eine entsprechende Nachricht generieren.</p>
<pre><code class="language-cpp">void CTestView::OnBnClickedButton1()
{
  // TODO: Fügen Sie hier Ihren Kontrollbehandlungscode für die Benachrichtigung ein.
  SendMessage( WM_MENUE_TREE, i_sprache, 0L );
</code></pre>
<p>Das funktioniert so weit und meine Strukturansicht wird gefüllt. Ich möchte diese Nachricht aber auch generieren, wenn ich über die Menüleiste einen Menüpunkt (z.B. Sprache-&gt;Deutsch) anwähle.</p>
<p>[cpp]void CTestApp::OnSpracheDeutsch()<br />
{<br />
<em>SendMessage( WM_MENUE_TREE, i_sprache, 0L );</em>[/cpp]</p>
<p>In CTestApp führt SendMessage zu der Fehlermeldung:<br />
error C2660: 'SendMessageA': Funktion akzeptiert keine 3 Argumente</p>
<p>Wo liegt der Fehler???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/590088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/590088</guid><dc:creator><![CDATA[Tiger287]]></dc:creator><pubDate>Tue, 24 Aug 2004 14:19:14 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage von Menüpunkt an Ansichtsklasse on Tue, 24 Aug 2004 19:45:37 GMT]]></title><description><![CDATA[<p>Tiger287 schrieb:</p>
<blockquote>
<p>[...]<br />
In CTestApp führt SendMessage zu der Fehlermeldung:<br />
error C2660: 'SendMessageA': Funktion akzeptiert keine 3 Argumente</p>
<p>Wo liegt der Fehler???</p>
</blockquote>
<p>Nun, eine von CWinApp abgeleitete Klasse ist kein Fenster (erbt nicht von CWnd)! Daher ist das <strong>SendMessage</strong>, welches Du aus CTestApp aufrufst, die Funktion aus der Win32-API, und die will einen Parameter mehr haben, nämlich das window handle (HWND) des Fensters, welches die Nachricht erhalten soll, im nachfolgenden Beispiel das main frame window:</p>
<pre><code class="language-cpp">void CTestApp::OnSpracheDeutsch()
{
    ASSERT(m_pMainWnd != NULL);
    HWND hWnd = m_pMainWnd-&gt;GetSafeHwnd();
    if (::IsWindow(hWnd))
        ::SendMessage(hWnd, WM_MENUE_TREE, i_sprache, 0L);
}
</code></pre>
<p>MfG<br />
Stephan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/590307</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/590307</guid><dc:creator><![CDATA[Stephan Roth]]></dc:creator><pubDate>Tue, 24 Aug 2004 19:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage von Menüpunkt an Ansichtsklasse on Wed, 25 Aug 2004 09:45:59 GMT]]></title><description><![CDATA[<p>Hi,<br />
danke für die Antwort. Ich habe es ausprobiert und es hat bei mir funktioniert. Die Nachricht kommt im main frame window an. Die folgende Anweisung hat die gleiche Wirkung.</p>
<pre><code class="language-cpp">AfxGetMainWnd()-&gt;SendMessage( WM_MENUE_TREE, i_sprache, 0L );
</code></pre>
<p>Mein Problem war aber eine Nachricht an CFormView. Wie kann ich die Nachricht dahin senden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/590634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/590634</guid><dc:creator><![CDATA[Tiger287]]></dc:creator><pubDate>Wed, 25 Aug 2004 09:45:59 GMT</pubDate></item></channel></rss>