<?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[MDIChild nur in Raster bewegen?]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe in einer Form ein MDIChild. Ich möchte, dass es sich auf einem Raster bewegt. Also nur, wenn ich z.B. 10 Pixel in x Richtung gehe, soll das Child dorthinspringen. Solange ich die Maus nur 9 Pixel Bewege, soll das Child nicht verschoben werden ... das gleiche auch für die y Richtung. Wie geht sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189539/mdichild-nur-in-raster-bewegen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 07:36:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189539.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Aug 2007 09:59:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 09:59:19 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe in einer Form ein MDIChild. Ich möchte, dass es sich auf einem Raster bewegt. Also nur, wenn ich z.B. 10 Pixel in x Richtung gehe, soll das Child dorthinspringen. Solange ich die Maus nur 9 Pixel Bewege, soll das Child nicht verschoben werden ... das gleiche auch für die y Richtung. Wie geht sowas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344163</guid><dc:creator><![CDATA[Thoms]]></dc:creator><pubDate>Tue, 14 Aug 2007 09:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 11:14:10 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Du könntest <a href="http://msdn2.microsoft.com/en-us/library/ms632632.aspx" rel="nofollow">WM_MOVING</a> abfangen (wie steht in der FAQ) und in der Funktion Veränderungen nur innerhalb des Rasters zulassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344205</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344205</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 11:35:53 GMT]]></title><description><![CDATA[<p>So habe ich es auch gemacht ... aber das Child wird an die neue Position gesetzt und dann zurück(von mir). Das flackert recht doll und sieht unschön aus.</p>
<p>Wie kann ich dafür sorgen, dass die Message nicht weitergereicht wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344220</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 11:47:48 GMT]]></title><description><![CDATA[<p>Das weiterreichen geschieht normalerweise durch den Aufruf von Dispatch. Hast du den mit drin?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344233</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 11:51:16 GMT]]></title><description><![CDATA[<p>Ja ... ich glaube ....</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP
           MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, OnRepose)
           MESSAGE_HANDLER(WM_NCLBUTTONDBLCLK, TMessage, OnTitelClick)
           MESSAGE_HANDLER(WM_NCRBUTTONDOWN, TMessage, OnTitelClick)
        END_MESSAGE_MAP(TForm)

        DYNAMIC void __fastcall WindowProc(TMessage &amp;Msg)
        {
           if (Msg.Msg == WM_MOVING)
           {
              Left = (Msg.Msg.XXX/25)*25;
              Top = (Msg.Msg.YYY/25)*25;
           }
           else
                TForm::WindowProc(Msg);
        }
</code></pre>
<p>So müsste es doch funktionieren ... jedoch weiß ich nicht, wie ich aus der Msg die X/Y Position rausquetsche <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/1344234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344234</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:51:16 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 11:54:12 GMT]]></title><description><![CDATA[<p>ohne MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, OnRepose)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344236</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 11:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:01:29 GMT]]></title><description><![CDATA[<p>Bei WM_WINDOWPOSCHANGING hast du doch einen Pointer zu einer <a href="http://msdn2.microsoft.com/en-us/library/ms632612.aspx" rel="nofollow">WINDOWPOS</a> struct in Msg.LParam. Mit dem Flag dort müsstest du das Bewegen doch verhindern können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344242</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:01:29 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:11:35 GMT]]></title><description><![CDATA[<p>Nun ja, kann das überhaupt so funktionieren? Schließlich weist er den Messages bestimmte Funktionen zu, fragt diese aber in WndProc ab. Meinem Verständnis nach dürften die da gar nicht mehr ankommen.</p>
<p>Davon abgesehen hatte ich das Problem, dass zumindest in Multithreaded-Anwedungen Botschaften verloren gehen können, wenn man den Weg über die WndProc wählt.</p>
<p>Ich habs bei mir nach folgendem Schema gelöst:<br />
Header:</p>
<pre><code class="language-cpp">void __fastcall CMToggleMonitoring(TMessage Message);
BEGIN_MESSAGE_MAP
	VCL_MESSAGE_HANDLER(CM_TOGGLEMONITORING, TMessage, CMToggleMonitoring);
END_MESSAGE_MAP (TForm)
</code></pre>
<p>CPP:</p>
<pre><code class="language-cpp">void __fastcall TMainForm::CMToggleMonitoring(TMessage Message)
{
   // Botschaftsbehandlung...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344254</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344254</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:11:35 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:13:58 GMT]]></title><description><![CDATA[<p>und wie kann ich msg in WINDOWPOS convertieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344258</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:17:27 GMT]]></title><description><![CDATA[<p>Joe_M. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void __fastcall CMToggleMonitoring(TMessage Message);
BEGIN_MESSAGE_MAP
	VCL_MESSAGE_HANDLER(CM_TOGGLEMONITORING, TMessage, CMToggleMonitoring);
END_MESSAGE_MAP (TForm)
</code></pre>
<p>CPP:</p>
<pre><code class="language-cpp">void __fastcall TMainForm::CMToggleMonitoring(TMessage Message)
{
   // Botschaftsbehandlung...
}
</code></pre>
</blockquote>
<p>ICh habe den Borland Compiler und der kennt VCL_MESSAGE_HANDLER &amp; CM_TOGGLEMONITORING nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344268</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:17:27 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:19:51 GMT]]></title><description><![CDATA[<p>Nicht die Message selbst, sondern nur den LParam von Msg.</p>
<pre><code class="language-cpp">WINDOWPOS* winpos = (WINDOWPOS*) Msg.LParam:
</code></pre>
<p>Du hast nur den Compiler, keine komplette IDE?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1344270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344270</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to MDIChild nur in Raster bewegen? on Tue, 14 Aug 2007 12:31:44 GMT]]></title><description><![CDATA[<p>nunja ... ich bin nur Hobbyprogrammierer ... daher ist das IDE und der Compiler das gleiche <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>
<p>So gehts übrigends:</p>
<pre><code class="language-cpp">BEGIN_MESSAGE_MAP
           MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TMessage, OnRepose);
        END_MESSAGE_MAP(TForm)

void __fastcall TMDIServo::OnRepose(TMessage &amp;Msg)
{
   WINDOWPOS *mypos = (WINDOWPOS*)Msg.LParam;
   mypos-&gt;x = (mypos-&gt;x/10)*10;
   mypos-&gt;y = (mypos-&gt;y/10)*10;
}
//---------------------------------------------------------------------------
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1344283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1344283</guid><dc:creator><![CDATA[Tho_as]]></dc:creator><pubDate>Tue, 14 Aug 2007 12:31:44 GMT</pubDate></item></channel></rss>