<?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[ClientDC übergeben]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwei Funktionen.</p>
<p>Nr.1: Es wird ein ClientDC erzeugt und dann ein mathematischer Graph gezeichnet.<br />
Nr.2: Es wird ein weiterer ClientDC erzeugt und darauf werden Informationen zum Graph gezeichnet.</p>
<p>Funktion Nr.2 wird immer dann ausgeführt, wenn man die Mausbewegt und bevor die eigentlichen Iformationen von Funktion 2 angezeigt werden, wird nochmal Funktion 1 ausgeführt, damit der neue Graph die alte &quot;Infobox) von Funktion2 übermalt.</p>
<p>Das Programm funktioniert soweit, allerdings flakkert der Graph, weil er ja dauernd neu berechnet wird.</p>
<p>Folgende Lösungsansätze habe ich, allerdings keie zur Umsetzung:<br />
1. Ist es möglich den nur den Inhalt des zweiten DC zu löschen?<br />
2. Kann ich das erste DC an das zweite übergeben?<br />
3. Komm ich nur mit Backbuffering weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/143379/clientdc-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 13:42:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/143379.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 07 Apr 2006 18:22:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ClientDC übergeben on Fri, 07 Apr 2006 18:22:01 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwei Funktionen.</p>
<p>Nr.1: Es wird ein ClientDC erzeugt und dann ein mathematischer Graph gezeichnet.<br />
Nr.2: Es wird ein weiterer ClientDC erzeugt und darauf werden Informationen zum Graph gezeichnet.</p>
<p>Funktion Nr.2 wird immer dann ausgeführt, wenn man die Mausbewegt und bevor die eigentlichen Iformationen von Funktion 2 angezeigt werden, wird nochmal Funktion 1 ausgeführt, damit der neue Graph die alte &quot;Infobox) von Funktion2 übermalt.</p>
<p>Das Programm funktioniert soweit, allerdings flakkert der Graph, weil er ja dauernd neu berechnet wird.</p>
<p>Folgende Lösungsansätze habe ich, allerdings keie zur Umsetzung:<br />
1. Ist es möglich den nur den Inhalt des zweiten DC zu löschen?<br />
2. Kann ich das erste DC an das zweite übergeben?<br />
3. Komm ich nur mit Backbuffering weiter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1032876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1032876</guid><dc:creator><![CDATA[Romeo-G]]></dc:creator><pubDate>Fri, 07 Apr 2006 18:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Fri, 07 Apr 2006 22:27:01 GMT]]></title><description><![CDATA[<p>Romeo-G schrieb:</p>
<blockquote>
<p>3. Komm ich nur mit Backbuffering weiter?</p>
</blockquote>
<p>Vermutlich ja: Wenn du das Flackern beheben willst, wirst du da nicht dran vorbei kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1032994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1032994</guid><dc:creator><![CDATA[Gideon]]></dc:creator><pubDate>Fri, 07 Apr 2006 22:27:01 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Sat, 08 Apr 2006 11:50:52 GMT]]></title><description><![CDATA[<p>Alles klar, dann werde ich dem mal nachgehen.<br />
Wenn einer von euch gerade nen Codebeispiel zur Hand hat, würde ich mich natürlich drüber freuen.</p>
<p>Vielen Dank,<br />
Romeo-G</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033188</guid><dc:creator><![CDATA[Romeo-G]]></dc:creator><pubDate>Sat, 08 Apr 2006 11:50:52 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Sat, 08 Apr 2006 12:07:35 GMT]]></title><description><![CDATA[<p>Als erstes überschreibe die EraseBkgnd methode, und las sie 0 zurückgeben. Dann must du zwar den kompletten inhalt des fensters zeichen aba das läßt einfach nen FillSolidRect mit der Clientgröße malen. Das behebt das flackern schon mal ungemein. Dann würde ich es so machen das ich den ersten graph auf ein image male und den 2 sprich die informaionen auf einem image. Dann muste nur imma das entsprechende Image blitten anstat jedesmal die funktion aufzurufen die es koplett neu malt. Und neumalen auf dem image brauchst es ja nur wenn sich werte verändern wenn ich dat richtig verstehe oda?<br />
Hier mal nen kleiner anstoß:Is aussem kopp also fehler seien mir verziehen.</p>
<pre><code class="language-cpp">CDC ImageDC;
ImageDC.CreateCompatibleDC(GetDC());
Graph.DeleteObject();
Graph.Create(breit,hoch);//Graph kannste vom Typ Bitmap machen muste dann natürlich im header deklarieren.
ImageDC.SelectObject(&amp;Image);
ImageDC.FillSolidRect(0,0,100,100,RGB(255,0,0)); //male was auch immer wird alles uffen bitmap gemalt;
ImageDC.DeleteDC();
</code></pre>
<p>So das wäre jetzt zum bsp die funktion die den Graphen malt. Das gleiche kannste dann mit der Infobox machen.</p>
<p>und in deiner OnPaint methode blittest dann die beiden Bitmaps dahin wo se hin sollen, könnte so aussehen:</p>
<pre><code class="language-cpp">CClientDC dc(this);
CDC tempDC;
tempDC.CreateCompatibleDC(GetDC());
tempDC.SelectObject(&amp;Graph);
dc.BlitBlt(0,0,breitgraphimage,hochgraphimage,&amp;tempDC,0,0,SRCCOPY);
tempDC.deleteDC();
tempDC.CreateCompatibleDC(GetDC());
tempDC.SelectObject(&amp;InfoBox);
dc.BlitBlt(0,0,breitInfoBox,hochInfoBoximage,&amp;tempDC,0,0,SRCCOPY);
tempDC.deleteDC();
</code></pre>
<p>so rein theo müste das funzen und uch dat flackern einigermaßen beheben.</p>
<p>Hoffe konnte dir helfen.Rechtschreibfehler sind meine und dürfen nicht kopiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033203</guid><dc:creator><![CDATA[xyz44]]></dc:creator><pubDate>Sat, 08 Apr 2006 12:07:35 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Sat, 08 Apr 2006 14:10:02 GMT]]></title><description><![CDATA[<p>Hallo und danke für deine Mühe, nur leider scheitere ich noch an der Umsetzung, denn ich schreibe eine dialogbasierte Anwendung und keine SDI. Wie komme ich also an die EraseBkgnd ran?</p>
<p>Romeo-G</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033260</guid><dc:creator><![CDATA[Romeo-G]]></dc:creator><pubDate>Sat, 08 Apr 2006 14:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Sat, 08 Apr 2006 14:38:10 GMT]]></title><description><![CDATA[<p>Um das falckern wegzubekommen empfehle ich:<br />
<a href="http://www.codeproject.com/cs/media/flickerfree.asp" rel="nofollow">http://www.codeproject.com/cs/media/flickerfree.asp</a></p>
<p>Und auch ein CDialog ist von CWnd abgeleitet. Du musst nur die Windows-Nachricht WM_ERASEBKGND abfangen und dann den aufruf zur Basisklasse auskommentieren bzw. return FALSE; hinschreiben. Aber steht alles auch auf der Seite.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033272</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sat, 08 Apr 2006 14:38:10 GMT</pubDate></item><item><title><![CDATA[Reply to ClientDC übergeben on Sat, 08 Apr 2006 15:44:55 GMT]]></title><description><![CDATA[<p>Vielen Dank an alle!<br />
Besonderer Dank und Ehre gebührt aber xyz44, denn nach knapp 4 Stunden habe ich es nun geschafft, aus deinem Code und einem anderen Codeschnippsel das gewünschte Ziel zu erreicchen.</p>
<p>Das Flackern weg zu bekommen habe ich relativ schnell geschafft, allerdings hat sich das Programm da noch andauernd aufgehängt, weil ich zu Beginn den Graph andauernd neu berechnet habe. Das hat meinen Rechner einfach überlastet.</p>
<p>Als ich dann aber, wie in deinem Beispiel, die Ausgabe in ein CBitmap gespeichert habe und deshalb der Graph nicht dauernd neu berechnet werden muss, ging alles wunderbar!</p>
<p>Vielen Dank!<br />
Romeo-G</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1033316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1033316</guid><dc:creator><![CDATA[Romeo-G]]></dc:creator><pubDate>Sat, 08 Apr 2006 15:44:55 GMT</pubDate></item></channel></rss>