<?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[SetCapture und WM_MOUSEMOVE]]></title><description><![CDATA[<p>Ich sitze hier seit einer Ewigkeit und wunderte mich, warum die Koordinaten spinnen wenn ich links über das Anwendungsfenster fahre, während mein Capture an ist.<br />
Nach ettlichen Versuchen beschloss ich dann mal die Koordinaten zu loggen und siehe da die Koordinaten sind unsigned 16Bitter und laufen dabei über.</p>
<p>Habe das dann mal auf die Schnelle so gelöst:</p>
<pre><code class="language-cpp">case WM_MOUSEMOVE:
	if( g_isDragging )
	{
		SetCapture( hWnd );
		POINT cp; GetCursorPos( &amp;cp );
		ScreenToClient( hWnd, &amp;cp );
		RECT cr; GetClientRect( hWnd, &amp;cr );
		if( cp.x &lt; 0 )
			cp.x = 0;
		if( cp.y &lt; 0 )
			cp.y = 0;
		if( cp.x &gt; cr.right )
			cp.x = cr.right - 1;
		if( cp.y &gt; cr.bottom )
			cp.y = cr.bottom - 1;
		g_dragRect.right = cp.x;
		g_dragRect.bottom = cp.y;
	}
	return 0;
</code></pre>
<p>Gibt es denn keine bessere Lösung (und den Überlauf zu erkennen und dann entsprechend zu handeln sehe ich nicht als ne bessere Lösung an)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145631/setcapture-und-wm_mousemove</link><generator>RSS for Node</generator><lastBuildDate>Thu, 16 Jul 2026 05:25:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145631.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Apr 2006 18:42:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetCapture und WM_MOUSEMOVE on Sat, 29 Apr 2006 18:42:22 GMT]]></title><description><![CDATA[<p>Ich sitze hier seit einer Ewigkeit und wunderte mich, warum die Koordinaten spinnen wenn ich links über das Anwendungsfenster fahre, während mein Capture an ist.<br />
Nach ettlichen Versuchen beschloss ich dann mal die Koordinaten zu loggen und siehe da die Koordinaten sind unsigned 16Bitter und laufen dabei über.</p>
<p>Habe das dann mal auf die Schnelle so gelöst:</p>
<pre><code class="language-cpp">case WM_MOUSEMOVE:
	if( g_isDragging )
	{
		SetCapture( hWnd );
		POINT cp; GetCursorPos( &amp;cp );
		ScreenToClient( hWnd, &amp;cp );
		RECT cr; GetClientRect( hWnd, &amp;cr );
		if( cp.x &lt; 0 )
			cp.x = 0;
		if( cp.y &lt; 0 )
			cp.y = 0;
		if( cp.x &gt; cr.right )
			cp.x = cr.right - 1;
		if( cp.y &gt; cr.bottom )
			cp.y = cr.bottom - 1;
		g_dragRect.right = cp.x;
		g_dragRect.bottom = cp.y;
	}
	return 0;
</code></pre>
<p>Gibt es denn keine bessere Lösung (und den Überlauf zu erkennen und dann entsprechend zu handeln sehe ich nicht als ne bessere Lösung an)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047944</guid><dc:creator><![CDATA[Windowser]]></dc:creator><pubDate>Sat, 29 Apr 2006 18:42:22 GMT</pubDate></item><item><title><![CDATA[Reply to SetCapture und WM_MOUSEMOVE on Sat, 29 Apr 2006 19:02:29 GMT]]></title><description><![CDATA[<p>PtInRect() - LOL</p>
<p>Das wär meiner Meinung nach 'auf die schnelle' <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="😉"
    /></p>
<p>also irg wie so:</p>
<pre><code class="language-cpp">if(!PtInRect(...))
    // du A r s c h
else
    // netter J u n g e r
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>hoffe konnte helfen...</p>
<p>MfG CodeFiner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047960</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 29 Apr 2006 19:02:29 GMT</pubDate></item><item><title><![CDATA[Reply to SetCapture und WM_MOUSEMOVE on Sat, 29 Apr 2006 19:03:35 GMT]]></title><description><![CDATA[<p>ohne 'r' <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>MfG CodeFinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1047961</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1047961</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Sat, 29 Apr 2006 19:03:35 GMT</pubDate></item><item><title><![CDATA[Reply to SetCapture und WM_MOUSEMOVE on Sun, 30 Apr 2006 11:14:45 GMT]]></title><description><![CDATA[<p>Die Funktion nützt mir leider nichts, da es ja erlaubt ist die Maus aus dem Fenster zu bewegen (das ganze zeichnet nen rechteck und wenn man da an den Rand fahren will ist das recht schwer ohne mauscapturing).<br />
Es ging mir auch mehr um das erhalten der Koordinaten als das Einfügen der Begrenzungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1048257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1048257</guid><dc:creator><![CDATA[Windowser]]></dc:creator><pubDate>Sun, 30 Apr 2006 11:14:45 GMT</pubDate></item></channel></rss>