<?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[Koordinaten innerhalb eines Steuerelement ausgeben]]></title><description><![CDATA[<p>Hallo MFC'ler,</p>
<p>ich suche nach einem Weg, von meinem etwas größeren Button, in Erfahrung zu<br />
bringen an welcher Position die Maus grade ist.</p>
<p>Dabei soll die linke obere Ecke des Button als Position &quot;0,0&quot; ausgewiesen werden. Wie kann ich das anstellen? Ich bekomme ja wenn, dann immer nur<br />
Koordinaten für die ganze Anwendung raus, aber net für ein einzelnes Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/156985/koordinaten-innerhalb-eines-steuerelement-ausgeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 17:25:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/156985.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Aug 2006 09:34:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Tue, 22 Aug 2006 09:34:20 GMT]]></title><description><![CDATA[<p>Hallo MFC'ler,</p>
<p>ich suche nach einem Weg, von meinem etwas größeren Button, in Erfahrung zu<br />
bringen an welcher Position die Maus grade ist.</p>
<p>Dabei soll die linke obere Ecke des Button als Position &quot;0,0&quot; ausgewiesen werden. Wie kann ich das anstellen? Ich bekomme ja wenn, dann immer nur<br />
Koordinaten für die ganze Anwendung raus, aber net für ein einzelnes Element?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122009</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Tue, 22 Aug 2006 09:34:20 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Tue, 22 Aug 2006 10:16:35 GMT]]></title><description><![CDATA[<p>Cursorposition - Obere linke Ecke des Buttons</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122018</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Tue, 22 Aug 2006 10:16:35 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Tue, 22 Aug 2006 11:30:28 GMT]]></title><description><![CDATA[<p>doppelpost...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122022</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Tue, 22 Aug 2006 11:30:28 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Tue, 22 Aug 2006 11:49:26 GMT]]></title><description><![CDATA[<p>Ich versteh dich nicht ganz... Meinst du GetCursorPos?<br />
Und wenn ja, wie binde ich das an ein einzelnes Steuerelement?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122036</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Tue, 22 Aug 2006 11:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Tue, 22 Aug 2006 18:27:47 GMT]]></title><description><![CDATA[<p>Er meint vermutlich GetCursorPos, abba ob das aufn steuerelement geht k.a.<br />
Vermutlich nich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122361</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122361</guid><dc:creator><![CDATA[Flopp]]></dc:creator><pubDate>Tue, 22 Aug 2006 18:27:47 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 07:31:21 GMT]]></title><description><![CDATA[<p>du könntest vielleicht die 0,0 position des gesamten dialogfelds auf das linkere obere eck deines button setzten (dc-&gt;SetViewportOrg(x,y)) und mit ::OnLButtonDown(UINT nFlags, CPoint point) deine postition abfragen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122515</guid><dc:creator><![CDATA[woldo]]></dc:creator><pubDate>Wed, 23 Aug 2006 07:31:21 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 09:23:57 GMT]]></title><description><![CDATA[<p>Hi, habe zwar wenig C/C++ Erfahrung, aber<br />
meinst du es inetwa so?</p>
<pre><code class="language-cpp">HWND button;
button=GetDlgItem(IDC_MYBUTTON1);
HDC dc;
dc=GetDC(button);

dc-&gt;SetViewportOrg(0,0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1122645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122645</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Wed, 23 Aug 2006 09:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 09:48:41 GMT]]></title><description><![CDATA[<p>Ich dachte Du fängst die WM_MOUSEMOVE Nachricht ab.<br />
Damit hast Du auch die Cursoposition. Damit kannst Du überprüfen, ob der Cursor über dem Button ist (WindowRect des Buttons).<br />
Wenn ja, dann brauchst noch die ClientRect und kannst von der Position im Hauptfenster auf die Position im Button umrechnen:</p>
<pre><code class="language-cpp">bool PointInRect( POINT &amp;pt, RECT &amp;rc )
{
    return pt.x &gt;= rc.left &amp;&amp; pt.x &lt;= rc.right &amp;&amp; pt.y &gt;= rc.top &amp;&amp; pt.y &lt;= rc.bottom;
}

...
case WM_MOUSEMOVE:
    POINT pt;
    pt.x = LOWORD( lParam );
    pt.y = HIWORD( lParam );
    RECT rcWindow;
    GetWindowRect( hButton, &amp;rcWindow ); // hButton = Dein Button

    if( PointInRect( pt, rcWindow ))
    {
        RECT rcClient;
        GetClientRect( hWnd, &amp;rcClient ); // hWnd = Hauptfenster
        int x = pt.x - rcClient.left; // x-Koord auf dem Button
        int y = pt.y - rcClient.top; // y-Koord auf dem Button
    }
    return 0;
...
</code></pre>
<p>EDIT: ehm, benutzt Du MFC ?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1122666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122666</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 23 Aug 2006 09:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 10:33:49 GMT]]></title><description><![CDATA[<p>Ja in MFC. Wobei ich da wohl oft auch WinAPI reinmixe.<br />
Wie gesagt stehe sehr am Anfang der Programmierung aber<br />
MFC spornt mich mehr an, da man sich an der Oberfläche austoben kann <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/1122712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122712</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Wed, 23 Aug 2006 10:33:49 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 10:43:47 GMT]]></title><description><![CDATA[<p>dann brauchst Du die Funktion PointInRect nicht, wenn Du statt RECT CRect benutzt, weil die Klasse hat eine entsprechende Methode (PtInRect).</p>
<p>Das ganze würden dann so aussehen:</p>
<pre><code class="language-cpp">CDeinDialog::OnMouseMove(UINT nFlags, CPoint point)
{
    CRect rcWindow;
    CWnd* pWnd = GetDlgItem( IDC_DEIN_BUTTON );
    pWnd-&gt;GetWindowRect( &amp;rcWindow );
    if( rcWindow.PtInRect( point ))
    {
        CRect rcClient;
        GetClientRect( rcClient );
        int x = point.x - rcClient.left;
        int y = point.y - rcClient.top;
    }

    CDialog::OnMouseMove(nFlags, point);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1122718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1122718</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 23 Aug 2006 10:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 19:19:39 GMT]]></title><description><![CDATA[<p>hallo Airdamn,</p>
<p>wenn ich dein Beispiel probiere, wird bei mir der angegebene Button<br />
(IDC_BUTTON1) irgendwie spiegelverkehrt im Dialog erkannt.</p>
<p>Der Button befindet sich im oberen linken Bereich der Anwendung.<br />
Fährt die Maus drüber passiert nix. Aber gehe ich unten rechts<br />
in der Anwendung irgendwo hin, gibt er mir ne MessageBox aus die<br />
ich bei dem MouseOver-Ereignis mit eingebunden habe.</p>
<p>Muss man das irgendwie invertieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123173</guid><dc:creator><![CDATA[Goat]]></dc:creator><pubDate>Wed, 23 Aug 2006 19:19:39 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Wed, 23 Aug 2006 20:04:05 GMT]]></title><description><![CDATA[<p>Egal was ich versuche...weiteres Problem ist, dass ich nie<br />
0,0 auf dem Button erreiche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123209</guid><dc:creator><![CDATA[Goat]]></dc:creator><pubDate>Wed, 23 Aug 2006 20:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Thu, 24 Aug 2006 06:48:56 GMT]]></title><description><![CDATA[<p>Ich hab das gleiche Problem hier. <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/1123371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123371</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Thu, 24 Aug 2006 06:48:56 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Thu, 24 Aug 2006 11:30:42 GMT]]></title><description><![CDATA[<p>sry fürs pushen :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123659</guid><dc:creator><![CDATA[Hannes5]]></dc:creator><pubDate>Thu, 24 Aug 2006 11:30:42 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Thu, 24 Aug 2006 11:37:17 GMT]]></title><description><![CDATA[<p>Leite dir eine Klasse vom CButton-Control ab. In deiner eigenen Klasse kannst du dann OnMouseMove behandeln. Diese Koordinaten sollten dann eigentlich korrekt sein.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1123670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1123670</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 24 Aug 2006 11:37:17 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Thu, 24 Aug 2006 18:57:03 GMT]]></title><description><![CDATA[<p>Wenn man das so macht, muss die Klasse vom Button doch von CDialog<br />
abgeleitet sein oder? Nur wird nie MouseMove erreicht, das müsste<br />
man dann ja im MouseMove des Hauptdialog irgendwie umleiten oder wie<br />
würde das gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124079</guid><dc:creator><![CDATA[Goat]]></dc:creator><pubDate>Thu, 24 Aug 2006 18:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to Koordinaten innerhalb eines Steuerelement ausgeben on Thu, 24 Aug 2006 23:58:56 GMT]]></title><description><![CDATA[<p>normalerweise geht gar keine WM_MOUSEMOVE Nachricht an den Dialog, wenn der Zeiger über dem Button ist, sondern zum Button. Denn der Button ist auch ein Fenster. Jedes Steuerelement ist ein Fenster.<br />
Du musst deine Klasse von CButton ableiten. Du fügst deinem Button eine Control-Variable zu, wie du es wohl schon gemacht hast und ersetzt das CButton bei der deklaration durch deine eigene Klasse. zb. CMyButton. Oder was auch immer.</p>
<p>In deiner von CButton abgeleiteten Klasse, behandelst du dann die WM_MOUSEMOVE Nachricht. Dort drin sollten die Koordinaten dann korrekt sein. Obere linke Ecke des Buttons ist (0,0).</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1124163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1124163</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 24 Aug 2006 23:58:56 GMT</pubDate></item></channel></rss>