<?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[Animation stoppt nach 10 sek von alleine]]></title><description><![CDATA[<p>Hi,<br />
ich habe folgenden Timer:<br />
SetTimer(hWnd,ID_FOO,render_delay,NULL);</p>
<p>In der ID_FOO Nachricht lasse ich eine Animation zeichnen. Diese kann man mit einem Druck auf einen Button pausieren und wieder aufnehmen.<br />
Das funktioniert auch alles wunderbar, bis nach ca. 10Sek. die Animation nicht mehr auf den Bildschirm gezeichnet wird, sondern der entsprechende Bereich im Fenster einfach weiss bleibt, anstatt sich mit der Anmation zu füllen. Die Timer Nachricht wird weiterhin ausgeführt.<br />
Es scheint, als würde irgendetwas nach einer gewissen Zeit seine Gültigkeit verlieren (Backbuffer DC??), wodurch die Zeichenfunktionen zwar ausgeführt werden, jedoch nicht mehr auf den Fensterzeichenbereich kopiert werden können...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191310/animation-stoppt-nach-10-sek-von-alleine</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 13:39:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191310.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Sep 2007 14:40:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sat, 01 Sep 2007 14:40:27 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich habe folgenden Timer:<br />
SetTimer(hWnd,ID_FOO,render_delay,NULL);</p>
<p>In der ID_FOO Nachricht lasse ich eine Animation zeichnen. Diese kann man mit einem Druck auf einen Button pausieren und wieder aufnehmen.<br />
Das funktioniert auch alles wunderbar, bis nach ca. 10Sek. die Animation nicht mehr auf den Bildschirm gezeichnet wird, sondern der entsprechende Bereich im Fenster einfach weiss bleibt, anstatt sich mit der Anmation zu füllen. Die Timer Nachricht wird weiterhin ausgeführt.<br />
Es scheint, als würde irgendetwas nach einer gewissen Zeit seine Gültigkeit verlieren (Backbuffer DC??), wodurch die Zeichenfunktionen zwar ausgeführt werden, jedoch nicht mehr auf den Fensterzeichenbereich kopiert werden können...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1356826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1356826</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sat, 01 Sep 2007 14:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 14:42:39 GMT]]></title><description><![CDATA[<p>Hab das jetzt mal bisschen eingegrenzt und es scheint so, als würde der backbuffer nach ca. 10 sek. einfach nicht mehr voll geschrieben, bzw. nicht mehr richtig auf den Screen-DC kopiert...</p>
<p>Im Moment sieht die Malfunktion, die über den Timer alle 20ms aufgerufen wird so aus:</p>
<pre><code class="language-cpp">ID_FOO:

hdc=GetDC(hWnd);							
backbuffer=CreateCompatibleDC(hdc);		
		SelectObject(backbuffer,CreateCompatibleBitmap(backbuffer,WNDWIDTH,WNDHEIGHT));		

FillRect(backbuffer,drawrec,CreateSolidBrush(RGB(255,255,255))); //weiss übermalen

//Fortlaufende Sinuskurve berechnen und mit MoveToEx und LineTo malen

BitBlt(hdc,deleterc-&gt;left,deleterc-&gt;top,deleterc-&gt;right,deleterc-&gt;bottom,backbuffer,deleterc-&gt;left,deleterc-&gt;top,SRCCOPY);	
InvalidateRect(hWnd,drawrec,FALSE);		
break;
</code></pre>
<p>Was kann da nach 10sek. nicht mehr funktionieren?? Ich weiß wirklich nicht mehr weiter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357325</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 14:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 14:48:57 GMT]]></title><description><![CDATA[<p>Oh man das ist doch so offensichtlich =&gt; Du gibst die GDI Sachen gar nicht frei</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357330</guid><dc:creator><![CDATA[.........]]></dc:creator><pubDate>Sun, 02 Sep 2007 14:48:57 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 15:17:50 GMT]]></title><description><![CDATA[<p>Hab jetzt</p>
<pre><code class="language-cpp">ReleaseDC(hWnd,backbuffer);
ReleaseDC(hWnd,hdc);
</code></pre>
<p>Hintendran gepackt, ändert aber nichts... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357342</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357342</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 15:17:50 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 15:24:51 GMT]]></title><description><![CDATA[<p>und leute wie du kriegen ein studium bei ibm? traurig traurig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357344</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357344</guid><dc:creator><![CDATA[neider]]></dc:creator><pubDate>Sun, 02 Sep 2007 15:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 15:42:16 GMT]]></title><description><![CDATA[<p>ach verdammt <sup>-</sup> ich steh halt einfach nur noch aufm schlauch und dazu kommt noch dass ich schon ewig nix mehr mit der WinAPI gemacht hab 8[ afk petzold rauskramen XD</p>
<p>EDIT: So müsste doch alles freigegeben sein, Problem besteht jedoch weiterhin...</p>
<pre><code class="language-cpp">hdc=GetDC(hWnd);
backbuffer=CreateCompatibleDC(hdc);		

SelectObject(backbuffer,CreateCompatibleBitmap(backbuffer,WNDWIDTH,WNDHEIGHT));

FillRect(backbuffer,drawrec,CreateSolidBrush(RGB(255,255,255)));

//zeichnen

BitBlt(hdc,deleterc-&gt;left,deleterc-&gt;top,deleterc-&gt;right,deleterc-&gt;bottom,backbuffer,deleterc-&gt;left,deleterc-&gt;top,SRCCOPY);	

InvalidateRect(hWnd,drawrec,FALSE);	

DeleteObject(GetCurrentObject(backbuffer,OBJ_BITMAP));
ReleaseDC(hWnd,backbuffer);
ReleaseDC(hWnd,hdc);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1357347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357347</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 15:42:16 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 16:19:04 GMT]]></title><description><![CDATA[<p>kannste mal im taskmanager schauen ob die handles immer zunehmen wenn dein proggie läuft, da weisste ob du alles richtig freigegeben hast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357371</guid><dc:creator><![CDATA[Script-Styler|Off]]></dc:creator><pubDate>Sun, 02 Sep 2007 16:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 19:09:15 GMT]]></title><description><![CDATA[<p>also die speicherauslastung nimmt immer weiter zu.. Aber ist Freigabe wirklich ein Grund, dass es einfach aufhört neu zu zeichnen?? Ich mein die Zeichenfunktionen und Blt und alles werden immer noch ausgeführt nur es wird scheinbar ein weisses Bild (backbuffer) auf den Bildschirm kopiert, ich verstehe nicht warum, bzw. wie sowas überhaupt sein kann oder durch was es verursacht werden könnte...</p>
<p>EDIT: Sehr interessant, hab das Programm jetzt während des Antwort schreibens laufen gelassen und jetzt tabb ich wieder rein und zack wird oben der Fensterkopf sowie eine Scrollbar im Fenster nicht mehr richtig angezeigt. An der Scrollbar sind Zahlen statt Pfeile und der Fenstertitel oben ist durchsichtig. Da muss irgendwas grundlegend schief laufen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357466</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 19:09:15 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 19:33:09 GMT]]></title><description><![CDATA[<p>ja das liegt wie schon gesagt daran, daß du die GDI sachen ned korrekt freigibst. da ist klar daß dann sowas bei rauskommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357479</guid><dc:creator><![CDATA[11112e]]></dc:creator><pubDate>Sun, 02 Sep 2007 19:33:09 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 19:34:12 GMT]]></title><description><![CDATA[<p>MasterCounter wo gibst du den &quot;solid brush&quot; frei?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357481</guid><dc:creator><![CDATA[z.b.]]></dc:creator><pubDate>Sun, 02 Sep 2007 19:34:12 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 20:56:32 GMT]]></title><description><![CDATA[<p>hab ich jetzt freigegeben ändert aber nix... hab jetzt folgenden abgeänderten code:</p>
<pre><code class="language-cpp">case ID_TIMER:
				{					
				HBRUSH hClear;
				HBITMAP hBmp;

				hdc=GetDC(hWnd);
				backbuffer=CreateCompatibleDC(hdc);		

				hBmp=CreateCompatibleBitmap(backbuffer,WNDWIDTH,WNDHEIGHT);
				hClear=CreateSolidBrush(RGB(255,255,255));

				SelectObject(backbuffer,hBmp);				
				FillRect(backbuffer,drawrec,hClear);

				DrawCoordSys(backbuffer,verschiebung);	

				MoveToEx(backbuffer,...,NULL);				
					LineTo(backbuffer,...);

 				BitBlt(hdc,deleterc-&gt;left,deleterc-&gt;top,deleterc-&gt;right,deleterc-&gt;bottom,backbuffer,deleterc-&gt;left,deleterc-&gt;top,SRCCOPY);	

				DeleteObject(hBmp);
				DeleteObject(hClear);
				ReleaseDC(hWnd,backbuffer);
				ReleaseDC(hWnd,hdc);
				break;
				}
</code></pre>
<p>Nur jetzt hab ich das Problem, dass der Buffer nicht auf das FillRect reagiert, egal welchen Wert ich einstelle das Fenster wird nun komplett mit schwarz übermalt... Irgendwas veraff ich hier grade richtig Freunde der Nacht -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357511</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357511</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 20:56:32 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 21:05:47 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5334">@MasterCounter</a><br />
Die Funktionen ineinander zu verschachteln, bringt dir hier wie schon erwähnt Speicherprobleme.<br />
1. Löschen des Brush-Objekts fehlt<br />
2. Ein Create(Compatible)DC erfordert ein DeleteDC und kein ReleaseDC</p>
<pre><code class="language-cpp">HBITMAP hbmp, hbmpold;
HDC hdc, backbuffer;
HBRUSH hbrush;

hdc=GetDC(hWnd);
backbuffer=CreateCompatibleDC(hdc);
hbmp = CreateCompatibleBitmap(backbuffer, WNDWIDTH, WNDHEIGHT);
hbmpold = (HBITMAP)SelectObject(backbuffer, hbmp);
hbrush = CreateSolidBrush(RGB(255, 255, 255));

FillRect(backbuffer, drawrec, hbrush);

//zeichnen

BitBlt(hdc,deleterc-&gt;left,deleterc-&gt;top,deleterc-&gt;right,deleterc-&gt;bottom,backbuffer,deleterc-&gt;left,deleterc-&gt;top,SRCCOPY);

// Freigabe der Objekte
DeleteObject(hbrush);
SelectObject(backbuffer, hbmpold);
DeleteObject(hbmp);
DeleteDC(backbuffer);
ReleaseDC(hWnd, hdc);

InvalidateRect(hWnd,drawrec,FALSE);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1357514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357514</guid><dc:creator><![CDATA[Analog Bit]]></dc:creator><pubDate>Sun, 02 Sep 2007 21:05:47 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Sun, 02 Sep 2007 21:25:34 GMT]]></title><description><![CDATA[<p>läuft <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> Ich krieg die krise... Tausend Dank an dich! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> Aber ein Gutes hat die Sache ja, ich vergess die Sache mit Release usw. nie nie mehr <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1357518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357518</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Sun, 02 Sep 2007 21:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Animation stoppt nach 10 sek von alleine on Mon, 03 Sep 2007 11:52:40 GMT]]></title><description><![CDATA[<p>erledigt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1357550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1357550</guid><dc:creator><![CDATA[MasterCounter]]></dc:creator><pubDate>Mon, 03 Sep 2007 11:52:40 GMT</pubDate></item></channel></rss>