<?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[auf Menüklicks reagieren]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe zu einer dialogfeldbasierten Anwendung ein Menü hinzugefügt uns zwar so:</p>
<p>in BLM-EditorDlg.cpp:</p>
<pre><code class="language-cpp">CMenu Menu;
	Menu.LoadMenu(IDR_MENU1);
	SetMenu(&amp;Menu);
</code></pre>
<p>Nun würde ich natürlich auch gerne auch gerne auf Menüklicks regaieren, aber die jeweiligen Funktionen werden nur behandelt, wenn ich die Funktionen in die BLM-EditorDlg-Klasse packe. Ich würde aber gerne in einer anderen Klasse auf die Klicks reagieren. Wenn ich den Eventhandler aber in die andere Klasse packe, wird diese Funktion nie abgearbeitet. Wie kann ich das ändern?</p>
<p>Ich hoffe, dass ich mein Problem erläutern konnte.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/165332/auf-menüklicks-reagieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 19 Jun 2026 22:19:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/165332.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Nov 2006 19:35:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auf Menüklicks reagieren on Sat, 18 Nov 2006 19:35:13 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe zu einer dialogfeldbasierten Anwendung ein Menü hinzugefügt uns zwar so:</p>
<p>in BLM-EditorDlg.cpp:</p>
<pre><code class="language-cpp">CMenu Menu;
	Menu.LoadMenu(IDR_MENU1);
	SetMenu(&amp;Menu);
</code></pre>
<p>Nun würde ich natürlich auch gerne auch gerne auf Menüklicks regaieren, aber die jeweiligen Funktionen werden nur behandelt, wenn ich die Funktionen in die BLM-EditorDlg-Klasse packe. Ich würde aber gerne in einer anderen Klasse auf die Klicks reagieren. Wenn ich den Eventhandler aber in die andere Klasse packe, wird diese Funktion nie abgearbeitet. Wie kann ich das ändern?</p>
<p>Ich hoffe, dass ich mein Problem erläutern konnte.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176800</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 18 Nov 2006 19:35:13 GMT</pubDate></item><item><title><![CDATA[Reply to auf Menüklicks reagieren on Sat, 18 Nov 2006 19:39:37 GMT]]></title><description><![CDATA[<p>Menuitems versenden WM_COMMAND Nachrichten. Dein FrameWnd muss in einer MFC Anwednung über ON_COMMAND Handler verfügen. Dass die Nachrichten versendet werden kannst Du mit Spy++ erkennen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1176804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1176804</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sat, 18 Nov 2006 19:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to auf Menüklicks reagieren on Mon, 20 Nov 2006 21:20:57 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Menuitems versenden WM_COMMAND Nachrichten. Dein FrameWnd muss in einer MFC Anwednung über ON_COMMAND Handler verfügen. Dass die Nachrichten versendet werden kannst Du mit Spy++ erkennen!</p>
</blockquote>
<p>Ich will ganz ehrlich sein: Diese Antwort verstehe ich nicht. Kann ich den Eventhandler nun hinpacken, wo ich will oder nicht?</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1178092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1178092</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 20 Nov 2006 21:20:57 GMT</pubDate></item><item><title><![CDATA[Reply to auf Menüklicks reagieren on Tue, 21 Nov 2006 09:53:39 GMT]]></title><description><![CDATA[<p>Wenn Du es nicht verstehst solltest Du Dich mit dem MFC Command Routing auseinandersetzen. Evtl. tut es da ein Tutorial...</p>
<p>Nein das kannst nicht den Command Handler irgendwo reinpacken. Die MFC routet WM_COMMAND Nachrichten die im FrameWindow ankommen an den aktiven View von dort an das Dokument von dort an das Frame von dort an die Applikation.</p>
<p>Wo immer der erste Handler gefunden wird, der bekommt die Nachricht. D.h. ein inaktiver View sieht nichts von dem WM_COMMAND, dito ist es mit einem Dialog irgendwo der nicht modal angezeigt ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1178277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1178277</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 21 Nov 2006 09:53:39 GMT</pubDate></item><item><title><![CDATA[Reply to auf Menüklicks reagieren on Tue, 21 Nov 2006 10:16:45 GMT]]></title><description><![CDATA[<p>ähm martin er hat ein dialogbasierende anwendung keine SDI oder MDI wo man eine MainFrame bzw. C..View hat.</p>
<p>Setz dir im Hauptdialog über den klassenassi den WM_COMMAND Nachrichtenhandler in diesem fängst du es wie folgt ab</p>
<p>in resource.h<br />
#define IDC_SEND_MENUPUNKT 9999</p>
<p>im Hauptdialog.cpp bei OnCommand(...)</p>
<pre><code>switch(wParam)
{
	case IDC_DEIN_MENU_PUNKT:

	    CDeinDialog *pDlg = new CDeinDialog;
	    pDlg-&gt;PostMessage (IDC_SEND_MENUPUNKT, 0,0);

	break;

}
</code></pre>
<p>eine möglichkeit innerhalb der case anweisung wäre du sendest eine PostMessage.</p>
<p>die Postmessage fängst du im anderen dialog wieder mit der PreTranslateMessage ab.</p>
<p>im AnderenDialog.cpp</p>
<pre><code>BOOL CDeinDialog::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
	switch(pMsg-&gt;message)
	{
		case IDC_SEND_MENUPUNKT:

		break;

	}

	return CDialog::PreTranslateMessage(pMsg);
}
</code></pre>
<p>SendMessage würde auch gehn dafür hab ich aber im momment keine zeit ein beispiele zu schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1178296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1178296</guid><dc:creator><![CDATA[LowFly]]></dc:creator><pubDate>Tue, 21 Nov 2006 10:16:45 GMT</pubDate></item></channel></rss>