<?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[Dynamisch mit WM_PAINT zeichnen lassen]]></title><description><![CDATA[<p>Hallo,</p>
<p>also ich möchte folgendes realisieren, ich möchte wenn sich das fenster öffnet und der user zum beispiel durch ziehen das fenster vergrößert das sich dynamisch dazu auch meine gezeichneten linien mitbewegen, also neugezeichnet werden, desweiteren möchte ich das sich auch die Buttons mit verschieben. Kann mir da einer zu hand gehen und erklären wie ich das machen muss, weil ich gar keine plan hab wie man da rangeht? danke wäre echt super</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201542/dynamisch-mit-wm_paint-zeichnen-lassen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 05:39:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201542.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 Dec 2007 15:13:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Mon, 31 Dec 2007 15:13:22 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>also ich möchte folgendes realisieren, ich möchte wenn sich das fenster öffnet und der user zum beispiel durch ziehen das fenster vergrößert das sich dynamisch dazu auch meine gezeichneten linien mitbewegen, also neugezeichnet werden, desweiteren möchte ich das sich auch die Buttons mit verschieben. Kann mir da einer zu hand gehen und erklären wie ich das machen muss, weil ich gar keine plan hab wie man da rangeht? danke wäre echt super</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428611</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 31 Dec 2007 15:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Mon, 31 Dec 2007 15:56:21 GMT]]></title><description><![CDATA[<p>Du fängst WM_SIZE ab (kommt immer, wenn die Fenstergröße verändert wird) und fragst die Fenstergröße ab (nWidth = LOWORD(lParam), nHeight = HIWORD(lParam). Die kannst Du in einer RECT-Sturktur speichern. Mit der kannst Du dann unter WM_PAINT die Positionen der Linien neu berechnen.<br />
Bezogen auf den Bildschirm kannst Du auch die Fensterkoordinaten und -Größe mit GetWindowRect() oder bezogen auf das Fenster mit GetClientRect() die Client-Area-Daten abfragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428638</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Mon, 31 Dec 2007 15:56:21 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Mon, 31 Dec 2007 16:14:50 GMT]]></title><description><![CDATA[<p>könntest du da vieleicht ein kleines beispiel anbringen, weil bei mir fängt wird nämlich zur erzeugung des fensters eine linie gezeichnet und diese soll sich dann eigentlich nur dynamisch mitbewegen wenn das fenster vergrößert wird. alsoe in kleines beispiel wäre wirklich nett</p>
<p>EDIT: also ich habs hinbekommen wie man die linie dynamisch mit zeichnet aber wie kann ich es realiseren das er die buttons dynamisch neusetzt aber dabei die alten wieder löscht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428650</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428650</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Mon, 31 Dec 2007 16:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Mon, 31 Dec 2007 21:51:37 GMT]]></title><description><![CDATA[<p>SetWindowPos() oder MoveWindow(), je nach bedarf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428720</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428720</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Mon, 31 Dec 2007 21:51:37 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 11:59:12 GMT]]></title><description><![CDATA[<p>hmm so irgendwie is mir das unklar, ich poste mal ein bild wo es vieleicht genauer wird.Also ihr seht ja auch dem Bild den Strich unten und die beide buttons. Wenn das Fenster nun vergrößert wird, muss sich ja der strich und die Buttons automatisch an die größe mit anpassen und wieder in ihrer Ecke unten stehen. Nur leider weiß ich nciht wie.Ich habe shcon rausbekommen wie man den strich in horizontale richtung mitzeichnet wenn sich die größe verändert. Aber was wenns nach unten verschoben wird, da hängst bei mir noch ein bissel. Wäre über hilfe sehr dankbar</p>
<p><a href="http://img246.imageshack.us/my.php?image=bildvk7.jpg" rel="nofollow"></a><a href="http://img246.imageshack.us/img246/464/bildvk7.th.jpg" rel="nofollow">http://img246.imageshack.us/img246/464/bildvk7.th.jpg</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428781</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428781</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 01 Jan 2008 11:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 17:45:20 GMT]]></title><description><![CDATA[<p>Hi, so sehen die Funktionsaufrufe (bzw. die Formeln der Parameter) aus, die du benötigst.</p>
<pre><code class="language-cpp">//...
case WM_SIZE:
MoveWindow(hWndButton0, rect.right - ((cxButtonWidth * 2) + (cxMargin * 2)), rect.bottom - (cyButtonHeight + cyMargin), cxButtonWidth, cyButtonHeight, TRUE) ;

MoveWindow(hWndButton1, rect.right - (cxMargin + cxButton), rect.bottom - (cyButtonHeight + cyMargin), cxButtonWidth, cyButtonHeight, TRUE) ;
return 0 ;
//...
</code></pre>
<p>Jetzt musst du eigentlich nur noch die Variablen, die ich verwendet habe, berechnen und fertig!</p>
<p>MfG WilMen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428904</guid><dc:creator><![CDATA[WilMen]]></dc:creator><pubDate>Tue, 01 Jan 2008 17:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 17:45:21 GMT]]></title><description><![CDATA[<p>aber vorgefertigte Lösungen gibts hier nicht <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 />
dafür tipps:</p>
<p>du fängst WM_SIZING oder WM_SIZE ab<br />
hat sich das fenster vergrößert oder verkleinert?<br />
berechne die länge des striches bzw. die größe deiner controls neu<br />
und setze diese</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428905</guid><dc:creator><![CDATA[hey]]></dc:creator><pubDate>Tue, 01 Jan 2008 17:45:21 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 17:47:25 GMT]]></title><description><![CDATA[<p>@hey</p>
<p>Das, was du schriebst, wurde schon gesagt. <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="😉"
    /> Also erst lesen, dann posten bitte!</p>
<p>MfG WilMen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428906</guid><dc:creator><![CDATA[WilMen]]></dc:creator><pubDate>Tue, 01 Jan 2008 17:47:25 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 20:12:13 GMT]]></title><description><![CDATA[<p>ok alles klar, wie kann ich denn aber einen vorher gezeichneten strich wieder löschen und den neuen dafür zeichnen lassen?</p>
<p>EDIT: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14524">@wilmen</a>, wenn ich jetzt noch wüsste was deine variablen aussagen sollen und ich mir im ansatz vorstellen könnte wie man die berechnet dann müsste es gehen:D wie gesagt ich hab gerade erst angefangen und es fällt mir relativ schwer, alleine da durchzblicken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1428960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428960</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Tue, 01 Jan 2008 20:12:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Tue, 01 Jan 2008 21:29:10 GMT]]></title><description><![CDATA[<p>Firefighter schrieb:</p>
<blockquote>
<p>ok alles klar, wie kann ich denn aber einen vorher gezeichneten strich wieder löschen und den neuen dafür zeichnen lassen?</p>
</blockquote>
<p>Dafür packst Du die Linienzeichen- und Button-Anpaßfunktion in die Bearbeitung von WM_PAINT. Diese Nachricht wird immer gesendet, wenn sich an dem Fenster IRGEND_ETWAS verändert, z. B. die Größe. Dadurch wird jedesmal der Hintergrund automatisch gelöscht, und alles, was unter WM_PAINT gezeichnet wird, erscheint dann neu.</p>
<blockquote>
<p>EDIT: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/14524">@wilmen</a>, wenn ich jetzt noch wüsste was deine variablen aussagen sollen und ich mir im ansatz vorstellen könnte wie man die berechnet dann müsste es gehen:D wie gesagt ich hab gerade erst angefangen und es fällt mir relativ schwer, alleine da durchzblicken</p>
</blockquote>
<p>Dafür solltest Du Dir die Übergabeparameter von MoveWindow anschauen. Steht am genauesten in der MSDN:</p>
<p>MSDN schrieb:</p>
<blockquote>
<p>The MoveWindow function changes the position and dimensions of the specified window. For a top-level window, the position and dimensions are relative to the upper-left corner of the screen. For a child window, they are relative to the upper-left corner of the parent window's client area.</p>
<p>BOOL MoveWindow(</p>
<p>HWND hWnd, // handle of window<br />
int X, // horizontal position<br />
int Y, // vertical position<br />
int nWidth, // width<br />
int nHeight, // height<br />
BOOL bRepaint // repaint flag);</p>
<p>Parameters:</p>
<p>hWnd<br />
Identifies the window.</p>
<p>X<br />
Specifies the new position of the left side of the window.</p>
<p>Y<br />
Specifies the new position of the top of the window.</p>
<p>nWidth<br />
Specifies the new width of the window.</p>
<p>nHeight<br />
Specifies the new height of the window.</p>
<p>bRepaint<br />
Specifies whether the window is to be repainted. If this parameter is TRUE, the window receives a WM_PAINT message. If the parameter is FALSE, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of moving a child window. If this parameter is FALSE, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing.</p>
<p>Return Values</p>
<p>If the function succeeds, the return value is nonzero.<br />
If the function fails, the return value is zero.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1428986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1428986</guid><dc:creator><![CDATA[Elektronix]]></dc:creator><pubDate>Tue, 01 Jan 2008 21:29:10 GMT</pubDate></item><item><title><![CDATA[Reply to Dynamisch mit WM_PAINT zeichnen lassen on Wed, 02 Jan 2008 11:42:52 GMT]]></title><description><![CDATA[<p>sorry ich weiß garnich wie ich das anwenden muss damit es den gewünschten effekt ergibt den ich mir vorgestellt hatte. Dann muss ich es erstmal ohne Dynamik machen. Danke trotzdem für jegliche Hilfe</p>
<p>EDIT:hab jetzt raus wie es geht.danke für die Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1429086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1429086</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 02 Jan 2008 11:42:52 GMT</pubDate></item></channel></rss>