<?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[MoveWindow dreht durch !?]]></title><description><![CDATA[<p>Hallo Leute, ich hoffe ihr seid mir nicht sauer, aber zu Grafik/-Spiele-Programmierung wollte ich das bestimmmt nicht stecken:</p>
<p>Also ich möchte wie so oft bei Größenänderungen an meinem Dialog, dass die Controls sich ähnlich verhalten.z.B. Habe ich eine Listbox, und die soll sich anpassen.</p>
<p>Nun folgende Vorgehensweise.(einmal lädt der Dialog mit vorgegebenen werten).</p>
<pre><code class="language-cpp">if(!m_bInitialized)
		{
			return;
		}	
	else
		{

		CRect rectDlg,rectCtrl,rectTarget;

	// Getting settings of the Dialog

		GetClientRect	(&amp;rectDlg);		
		ClientToScreen	(&amp;rectDlg);

		lDlgLeft	= rectDlg.left;
		lDlgRight	= rectDlg.right;
		lDlgTop		= rectDlg.top;
		lDlgBottom	= rectDlg.bottom;
		lDlgHeight  = rectDlg.Height();
		lDlgWidth  = rectDlg.Width ();

	// Getting settings of the Control

		if (::IsWindow(m_ctlLstEventsAvailable.m_hWnd))

		{

				this-&gt;m_ctlLstEventsAvailable.GetWindowRect (&amp;rectCtrl);

	rectTarget.top = (lDlgTop * m_dSizeFactorTop);
	rectTarget.left	= (lDlgLeft * m_dSizeFactorTop);
	rectTarget.right =(lDlgRight * m_dSizeFactorRight);
	rectTarget.bottom = (lDlgBottom * m_dSizeFactorBottom ) ;

m_ctlLstEventsAvailable.MoveWindow(
&amp;rectTarget,TRUE
);
</code></pre>
<p>Dadurch bekomme ich die folgenden Werte (die eigentlich wunderbar passen):</p>
<p>rectTarget {top=154 bottom=428 left=174 right=999}<br />
rectDlg {top=104 bottom=829 left=117 right=1062}</p>
<p>Sieht ja echt toll aus, aber in wirklich keit schwirrt mein Control jenseits von Gut und Böse auf dem Dialog rum.</p>
<p>Vielen Dank für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142051/movewindow-dreht-durch</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 06:34:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142051.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Mar 2006 16:16:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to MoveWindow dreht durch !? on Tue, 28 Mar 2006 05:20:18 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich hoffe ihr seid mir nicht sauer, aber zu Grafik/-Spiele-Programmierung wollte ich das bestimmmt nicht stecken:</p>
<p>Also ich möchte wie so oft bei Größenänderungen an meinem Dialog, dass die Controls sich ähnlich verhalten.z.B. Habe ich eine Listbox, und die soll sich anpassen.</p>
<p>Nun folgende Vorgehensweise.(einmal lädt der Dialog mit vorgegebenen werten).</p>
<pre><code class="language-cpp">if(!m_bInitialized)
		{
			return;
		}	
	else
		{

		CRect rectDlg,rectCtrl,rectTarget;

	// Getting settings of the Dialog

		GetClientRect	(&amp;rectDlg);		
		ClientToScreen	(&amp;rectDlg);

		lDlgLeft	= rectDlg.left;
		lDlgRight	= rectDlg.right;
		lDlgTop		= rectDlg.top;
		lDlgBottom	= rectDlg.bottom;
		lDlgHeight  = rectDlg.Height();
		lDlgWidth  = rectDlg.Width ();

	// Getting settings of the Control

		if (::IsWindow(m_ctlLstEventsAvailable.m_hWnd))

		{

				this-&gt;m_ctlLstEventsAvailable.GetWindowRect (&amp;rectCtrl);

	rectTarget.top = (lDlgTop * m_dSizeFactorTop);
	rectTarget.left	= (lDlgLeft * m_dSizeFactorTop);
	rectTarget.right =(lDlgRight * m_dSizeFactorRight);
	rectTarget.bottom = (lDlgBottom * m_dSizeFactorBottom ) ;

m_ctlLstEventsAvailable.MoveWindow(
&amp;rectTarget,TRUE
);
</code></pre>
<p>Dadurch bekomme ich die folgenden Werte (die eigentlich wunderbar passen):</p>
<p>rectTarget {top=154 bottom=428 left=174 right=999}<br />
rectDlg {top=104 bottom=829 left=117 right=1062}</p>
<p>Sieht ja echt toll aus, aber in wirklich keit schwirrt mein Control jenseits von Gut und Böse auf dem Dialog rum.</p>
<p>Vielen Dank für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024930</guid><dc:creator><![CDATA[dedidado]]></dc:creator><pubDate>Tue, 28 Mar 2006 05:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to MoveWindow dreht durch !? on Tue, 28 Mar 2006 07:01:11 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/movewindow.asp" rel="nofollow">MoveWindow()</a> setzt die Position relativ zum Elternfenster fest, d.h. der Punkt (0,0) ist die linke obere Ecke des Dialogs (also der Punkt (104,117) auf dem Bildschirm in deinem Beispiel) - das müsstest du noch ausgleichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025243</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 28 Mar 2006 07:01:11 GMT</pubDate></item><item><title><![CDATA[Reply to MoveWindow dreht durch !? on Fri, 31 Mar 2006 05:15:26 GMT]]></title><description><![CDATA[<p>Ok, dass wir das relativ zum Elternfenster verschieben hat mir schonmal geholfen. Vielleicht erkläre ich nochmal ganz kurz was ich (einfaches)<br />
machen möchte:</p>
<p>Ich habe einen dialog mit ListView, die soll von den Seitenrändern immer den gleichen Abstand haben.Also tacker ich die Listview oben mit zwei statischen werten fix an die linke obere ecke.</p>
<pre><code class="language-cpp">rect.left	= LIST_LEFTBORDER;
     rect.top	= LIST_TOPBORDER;
</code></pre>
<p>Also relativ zum Dialog, beides = 16 (passt !)</p>
<p>Total easy, und funzt auch prima, jetzt macht mir nur noch unten und rechts Probleme:</p>
<p>Da nehme ich den RIGHT wert des Dialogs, und ziehe den gewünschten Abstand ab. Mathematisch korrekt, aber die Listview klebt immer noch an meiner rechten Seite. Ich kann den Wert sogar verdoppeln , NICHTS !</p>
<p>Unten genau so, ich dreh noch durch, jetzt stand ich so kurz vorm Durchbruch.</p>
<p>ISt alles in der OnInitDialog, falls das was ausmacht...</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1027264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027264</guid><dc:creator><![CDATA[dedidado]]></dc:creator><pubDate>Fri, 31 Mar 2006 05:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to MoveWindow dreht durch !? on Fri, 31 Mar 2006 05:21:11 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5214">@dedidado</a>: Mach bitte das Häkchen bei <strong>BBCode in diesem Beitrag deaktivieren</strong> weg, sonst funktionieren die Code-Tags nicht.<br />
Am besten in deinem Profil, dann kannst du es nicht vergessen. <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 />
...ich habs jetzt schon zweimal nachgebessert. <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>Ich habe gerade mal bei mir geguckt (habe ein Formview mit einem Control drauf, was sich anpasst) und ich glaube, du hast ein Invalidate vergessen.</p>
<pre><code class="language-cpp">void CAdLogView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);

	if (m_lscLog.m_hWnd)
	{
		m_lscLog.MoveWindow(0, 50, cx, cy - 50);
		m_lscLog.Invalidate();
	}
}
m_lscLog entspricht deinem m_ctlLstEventsAvailable. Und so funktioniert das einwandfrei. :)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1027610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1027610</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Fri, 31 Mar 2006 05:21:11 GMT</pubDate></item></channel></rss>