<?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[Offscreen blit statt Invalidate]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine komplexe view, die beim Scrollen oft nachgezeichnet werden muss. Dabei ensteht ein starkes flimmern.</p>
<p>Wie kann man dieses Problem umgehen?<br />
Ich wollte diese Problem lösen, in dem ich versucht habe alles auf einen Offscreen dc zu laden, um beim neuzeichnen dann alles zu blitten, was aber leider nicht funktioniert hat.</p>
<p>Also würde das flimmern mit einem Offscreen dc weggehen? wenn ja, wie blitte ich einen DC richtig auf einen anderen (bei mir wurden immer keine daten angezeigt?</p>
<p>Gruß Stu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164232/offscreen-blit-statt-invalidate</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 19:12:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164232.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Nov 2006 13:04:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Offscreen blit statt Invalidate on Mon, 06 Nov 2006 13:04:35 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine komplexe view, die beim Scrollen oft nachgezeichnet werden muss. Dabei ensteht ein starkes flimmern.</p>
<p>Wie kann man dieses Problem umgehen?<br />
Ich wollte diese Problem lösen, in dem ich versucht habe alles auf einen Offscreen dc zu laden, um beim neuzeichnen dann alles zu blitten, was aber leider nicht funktioniert hat.</p>
<p>Also würde das flimmern mit einem Offscreen dc weggehen? wenn ja, wie blitte ich einen DC richtig auf einen anderen (bei mir wurden immer keine daten angezeigt?</p>
<p>Gruß Stu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169592</guid><dc:creator><![CDATA[DiscoStu42]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to Offscreen blit statt Invalidate on Mon, 06 Nov 2006 13:35:25 GMT]]></title><description><![CDATA[<p>Was du wohl meinst ist double-buffering. Google mal danach, da solltest du genug funktionierende Beispiele finden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1169635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169635</guid><dc:creator><![CDATA[dEUs]]></dc:creator><pubDate>Mon, 06 Nov 2006 13:35:25 GMT</pubDate></item><item><title><![CDATA[Reply to Offscreen blit statt Invalidate on Tue, 07 Nov 2006 02:39:26 GMT]]></title><description><![CDATA[<p>DCs blittet man üblicherweise mit BitBlt. Und du solltest deinen DC mit CreateCompatibleDC anlegen, und dann eine Bitmap dafür mit CreateCompatibleBitmap.<br />
So z.B.</p>
<pre><code class="language-cpp">HDC windowDc = GetDC(windowHandle);
    HDC memoryDc = CreateCompatibleDC(windowDc);
    HBITMAP memoryDcBitmap = CreateCompatibleBitmap(windowDc);
    HGDIOBJ oldBitmap = SelectObject(memoryDc, memoryDcBitmap);
    ReleaseDC(windowDc);
</code></pre>
<p>Und freigeben tust du das halt wieder mit</p>
<pre><code class="language-cpp">VERIFY(SelectObject(memoryDc, oldBitmap) == HGDIOBJ(memoryDcBitmap));
    VERIFY(DeleteObject(memoryDcBitmap));
    VERIFY(DeleteDC(memoryDc));
</code></pre>
<p>Quasi. Dann sollte es mit BitBlt schön gehen. Hatte nie Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1170145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1170145</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 07 Nov 2006 02:39:26 GMT</pubDate></item></channel></rss>