<?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[Popups zu weit liks]]></title><description><![CDATA[<p>Hi Leutz,</p>
<p>ich hab ne Frage bzgl. Popups, ich hab eine Form mit nem Menü bei rechtsklick wird ein Popup angezeigt wenn ich so mach direct über dem MausCursor wie mans gewöhnt ist :</p>
<pre><code class="language-cpp">void CKontextmenueDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	 CMenu *m_lMenu = NULL;				// Zeiger vom Typ Menü erstellen
	 m_lMenu = GetMenu();				// Zeiger auf Fenstermenü holen
 	 m_lMenu = m_lMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
	 m_lMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON,point.x, point.y, this, NULL); // Popup-Menü anzeigen

}
</code></pre>
<p>Wenn ich aber erreichen möchte dass je nach dem wo ich hinklicke ein anderes Menü erscheint, werden die 2 versch. Popups viel zu weit links angezeigt, ich habs in OnButtonDown gemacht :</p>
<pre><code class="language-cpp">void CDLG_MenueDlg::OnRButtonDown(UINT nFlags, CPoint point) 
{

	CMenu *pMenu = NULL;
	pMenu = GetMenu ();

	if (point.x &lt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}
	else if (point.x &gt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(1);	// Zeiger auf zweites Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}	
}
</code></pre>
<p>Wisst ihr was ich falsch mache und wies richtig geht ?</p>
<p>regards<br />
ShadowEater</p>
<p>[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173748/popups-zu-weit-liks</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Apr 2026 17:58:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173748.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Feb 2007 14:39:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 14:39:11 GMT]]></title><description><![CDATA[<p>Hi Leutz,</p>
<p>ich hab ne Frage bzgl. Popups, ich hab eine Form mit nem Menü bei rechtsklick wird ein Popup angezeigt wenn ich so mach direct über dem MausCursor wie mans gewöhnt ist :</p>
<pre><code class="language-cpp">void CKontextmenueDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	 CMenu *m_lMenu = NULL;				// Zeiger vom Typ Menü erstellen
	 m_lMenu = GetMenu();				// Zeiger auf Fenstermenü holen
 	 m_lMenu = m_lMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
	 m_lMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON,point.x, point.y, this, NULL); // Popup-Menü anzeigen

}
</code></pre>
<p>Wenn ich aber erreichen möchte dass je nach dem wo ich hinklicke ein anderes Menü erscheint, werden die 2 versch. Popups viel zu weit links angezeigt, ich habs in OnButtonDown gemacht :</p>
<pre><code class="language-cpp">void CDLG_MenueDlg::OnRButtonDown(UINT nFlags, CPoint point) 
{

	CMenu *pMenu = NULL;
	pMenu = GetMenu ();

	if (point.x &lt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}
	else if (point.x &gt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(1);	// Zeiger auf zweites Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}	
}
</code></pre>
<p>Wisst ihr was ich falsch mache und wies richtig geht ?</p>
<p>regards<br />
ShadowEater</p>
<p>[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231264</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 14:39:11 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 14:42:03 GMT]]></title><description><![CDATA[<p>Kennst du schon ScreenToClient? <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/1231268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231268</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Mon, 19 Feb 2007 14:42:03 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 14:42:39 GMT]]></title><description><![CDATA[<p>Nun TrackPopupMenu erwartet keine Fenster-Koordinaten sondern absolute Koordinaten relativ zum Bildschirm.<br />
OnCOntextMenu liefert Bildschirm Koordinante, OnRButtonDown liefert Fenster Koordinaten. Da fehlt also ein ClientToScreen!</p>
<p>BTW: Mach es nicht so, verwende imm WM_CONTEXTMENU. Wie sonst kann man das Menü mit der Maus öffnen. Die meisten Programmierer vergessen, dass es eine Kontextmenü-Taste gibt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231269</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Feb 2007 14:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 14:47:08 GMT]]></title><description><![CDATA[<p>Hi Martin,<br />
danke für deine schnelle antwort.<br />
Am Anfang hatte ich es ja in OnContextMenu bzw. die WM_CONTEXTMENU Nachricht genutzt, aber wie mach ich es dann, dass ich bei verschiedenen Positionen auch versch. Popups angezeigt bekomme ?</p>
<p>Kommt rüber was ich mein ?</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231274</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 14:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 14:53:36 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Da fehlt also ein ClientToScreen!</p>
</blockquote>
<p>Ups, falschrum. <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>ShadowEater schrieb:</p>
<blockquote>
<p>[...]aber wie mach ich es dann, dass ich bei verschiedenen Positionen auch versch. Popups angezeigt bekomme ?</p>
</blockquote>
<p>Nen Point hast du doch bei beiden Funktionen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231281</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231281</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Mon, 19 Feb 2007 14:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 15:00:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">void CDLG_MenueDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
{
		CMenu *pMenu = NULL;
	pMenu = GetMenu ();

	if (point.x &lt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}
	else if (point.x &gt; 218)
	{	
		pMenu = pMenu-&gt;GetSubMenu(1);	// Zeiger auf erstes Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}	

}
</code></pre>
<p>so sieht die Funktion aus.<br />
Angezeigt wird ein Popup schön über dem mauszeigen aber immer das selbe ?</p>
<p>regards ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231285</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 15:00:34 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 15:20:50 GMT]]></title><description><![CDATA[<p>Hmmmmmm.</p>
<p>ich mach schon seit Stunden damit rum, habt ihr echt keine Ahnung ?</p>
<p>Oder isses so einfach dass sich keine Antwort lohnt.</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231304</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 15:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 15:44:44 GMT]]></title><description><![CDATA[<p>...Man könnte sich auch randlose Fenster für die einzelnen Bereiche in die man klickt definieren, da könnte man auch Images reinhängen...</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
regards<br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231317</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 15:44:44 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 16:19:42 GMT]]></title><description><![CDATA[<p>Wo ist Dein Problem? Du bekommst Koordinaten auch bei WM_CONTEXTMENU.<br />
Diese kannst Du umrechnen in Client-Koordinaten mit ScreenToCLient.</p>
<p>Was ist nun Dein Problem aus diesen Koordinaten unterschiedliche Menüs zu ermitteln? Ich verstehe ehrlich gesagt Dein Problem nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231343</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Feb 2007 16:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 17:06:09 GMT]]></title><description><![CDATA[<p>Oh Mann, ich weiss auch net wo ich die ganze Zeit hingeguckt hab, so klappts :</p>
<pre><code class="language-cpp">void CDLG_MenueDlg::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	CMenu *pMenu = NULL;
	pMenu = GetMenu ();

 	ScreenToClient (&amp;point);
	if (point.x &lt; 218)
	{	
		ClientToScreen (&amp;point);
		pMenu = pMenu-&gt;GetSubMenu(0);	// Zeiger auf erstes Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}
	else if (point.x &gt; 218)
	{	
		ClientToScreen (&amp;point);
		pMenu = pMenu-&gt;GetSubMenu(1);	// Zeiger auf zweites Untermenü holen
		pMenu-&gt;TrackPopupMenu(TPM_CENTERALIGN|TPM_LEFTBUTTON, point.x, point.y, this, NULL); // Popup-Menü anzeigen
	}
</code></pre>
<p>Danke nochmal für Deine bzw. Eure Mühe Martin + estartu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
sincerely <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
ShadowEater</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231373</guid><dc:creator><![CDATA[ShadowEater]]></dc:creator><pubDate>Mon, 19 Feb 2007 17:06:09 GMT</pubDate></item><item><title><![CDATA[Reply to Popups zu weit liks on Mon, 19 Feb 2007 17:59:44 GMT]]></title><description><![CDATA[<p>BTW:</p>
<pre><code class="language-cpp">if (point.x &lt; 218)
    {
</code></pre>
<p>So was mag ich gar nicht. Ich versuche solche Sachen:<br />
1. allgemeiner zu fassen.<br />
2. eine zentrale Funktion HitTest zu bauen, die ich eben auch andersweitig verwende. Ich vermute diese Koordinaten werden nicht nur hierfür verwendet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1231407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1231407</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 19 Feb 2007 17:59:44 GMT</pubDate></item></channel></rss>