<?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[Fenster linear Vergrößern&#x2F;Kleinern ?]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe per WinAPI ein Fenster erstellt, welches sich auch in der Größe verändern lässt(Die Ränder lassen sich &quot;ziehen&quot;).<br />
Nun möchte ich aber dass sich das Seitenverhältnis des Fensters nicht ändert.</p>
<p>Ich habe es über die WndProc mit dem Event WM_SIZE versucht, in dieser Funktion Berechne ich eifach über mein festes Seitenverhältnis und die vom Benutzer eingestellte Breite die dazu passende Höhe, und zwar so:</p>
<pre><code class="language-cpp">#define ROUND(a) (int)(a&gt;0 ? a+0.5f: a-0.5f)
(...)
int fHeight = ROUND( (float)LOWORD(lParam) / fFactor );
</code></pre>
<p>Anschließend setze ich die &quot;neue&quot; Höhe des Fensters über:</p>
<pre><code class="language-cpp">RECT wndrct;
GetWindowRect( hWnd, &amp;wndrct );
SetWindowPos( hWnd, hWnd, wndrct.left, wndrct.top, LOWORD(lParam), fHeight, NULL );
</code></pre>
<p>Leider funktioniert das so nicht, gibt es dafür eine bessere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223829/fenster-linear-vergrößern-kleinern</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 02:00:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223829.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Oct 2008 14:20:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fenster linear Vergrößern&#x2F;Kleinern ? on Wed, 01 Oct 2008 14:20:35 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Ich habe per WinAPI ein Fenster erstellt, welches sich auch in der Größe verändern lässt(Die Ränder lassen sich &quot;ziehen&quot;).<br />
Nun möchte ich aber dass sich das Seitenverhältnis des Fensters nicht ändert.</p>
<p>Ich habe es über die WndProc mit dem Event WM_SIZE versucht, in dieser Funktion Berechne ich eifach über mein festes Seitenverhältnis und die vom Benutzer eingestellte Breite die dazu passende Höhe, und zwar so:</p>
<pre><code class="language-cpp">#define ROUND(a) (int)(a&gt;0 ? a+0.5f: a-0.5f)
(...)
int fHeight = ROUND( (float)LOWORD(lParam) / fFactor );
</code></pre>
<p>Anschließend setze ich die &quot;neue&quot; Höhe des Fensters über:</p>
<pre><code class="language-cpp">RECT wndrct;
GetWindowRect( hWnd, &amp;wndrct );
SetWindowPos( hWnd, hWnd, wndrct.left, wndrct.top, LOWORD(lParam), fHeight, NULL );
</code></pre>
<p>Leider funktioniert das so nicht, gibt es dafür eine bessere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591532</guid><dc:creator><![CDATA[RedPuma]]></dc:creator><pubDate>Wed, 01 Oct 2008 14:20:35 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster linear Vergrößern&#x2F;Kleinern ? on Wed, 01 Oct 2008 14:45:35 GMT]]></title><description><![CDATA[<p>Klar, in WM_WINDOWPOSCHANGING macht mas das.</p>
<pre><code class="language-cpp">WINDOWPOS *pwp = lParam;
if (wp-&gt;cx != cx_old)
{
   // breite hat sich geaendert
   cx_old = wp-&gt;cx;
   // adjust height
   wp-&gt;cy = wp-&gt;cx * ratio;
}
else if (wp-&gt;cy != cy_old) ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1591554</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591554</guid><dc:creator><![CDATA[sapero]]></dc:creator><pubDate>Wed, 01 Oct 2008 14:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to Fenster linear Vergrößern&#x2F;Kleinern ? on Wed, 01 Oct 2008 14:57:08 GMT]]></title><description><![CDATA[<p>Wenn es um die Benutzeränderungen geht ist evtl. WM_SIZING der bessere Ansatz, dann kann das Programm machen was es will, der User aber wird durch WM_SIZING eingeschränkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1591568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1591568</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 01 Oct 2008 14:57:08 GMT</pubDate></item></channel></rss>