<?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[BitBlt nur mit Bitmaps?]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich würde gerne den View meiner SDI Anwendung Backbuffern. Wenn ich das ganze bei Bitmaps mache, funktioniert es tadellos aber ich Zeichne ne ganze Menge mit CDC::FrameRect, CDC::FillRect und CDC:TextOut. Diese sachen werden leider nicht Dargestellet.</p>
<p>Kann mir jemand einen Tip geben wie auch das Backbuffern kann, um das Flackern zu reduzieren?</p>
<p>Besten Dank!<br />
Gruß,<br />
mathi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/136207/bitblt-nur-mit-bitmaps</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 22:58:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/136207.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Feb 2006 09:59:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 09:59:28 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>Ich würde gerne den View meiner SDI Anwendung Backbuffern. Wenn ich das ganze bei Bitmaps mache, funktioniert es tadellos aber ich Zeichne ne ganze Menge mit CDC::FrameRect, CDC::FillRect und CDC:TextOut. Diese sachen werden leider nicht Dargestellet.</p>
<p>Kann mir jemand einen Tip geben wie auch das Backbuffern kann, um das Flackern zu reduzieren?</p>
<p>Besten Dank!<br />
Gruß,<br />
mathi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989177</guid><dc:creator><![CDATA[mathi]]></dc:creator><pubDate>Wed, 08 Feb 2006 09:59:28 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 12:07:13 GMT]]></title><description><![CDATA[<p>Du könntest das ganze Fenster als Bitmap puffern.</p>
<pre><code class="language-cpp">CDC *pDc = GetDC();
RECT rc;

GetClientRect(&amp;rc);

m_dcMem.CreateCompatibleBitmap(pDc,rc.right,rc.bottom);
m_dcMem.SelectObject(&amp;m_bitmap);

m_bitmap.CreateBitmap(...) // m_bitmap und m_dcMem müßen globale Gülitigkeit besitzen

m_dcMem.BitBlt(0,0,rc.right,rc.bottom,pDc,0,0,SRCCOPY);
</code></pre>
<p>Muß aber wirklich sein, das die Anwendung gepuffert wird. Das Flickern kann auch, wenn man nur zeichnet &quot;wenn es sein muß&quot;, unterdrückt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989267</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Wed, 08 Feb 2006 12:07:13 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 13:35:14 GMT]]></title><description><![CDATA[<p>Fragen siehe Komentare:</p>
<pre><code class="language-cpp">CDC *pDc = GetDC();
RECT rc;

GetClientRect(&amp;rc);

m_dcMem.CreateCompatibleBitmap(pDc,rc.right,rc.bottom);
m_dcMem.SelectObject(&amp;m_bitmap); // Das Bitmap wir in den DC geladen, also muss ich doch vorher in das Bitmap gezeichnet haben?

m_bitmap.CreateBitmap(...) // Wieso?

m_dcMem.BitBlt(0,0,rc.right,rc.bottom,pDc,0,0,SRCCOPY); // Sollte hier nicht pDC stehen?
</code></pre>
<p>Oder anders gefragt: Kannst du das bitte etwas genauer erkären? z.B. wo zeichne ich denn nun rein mit meinen FrameRect und TextOut Funktion.</p>
<blockquote>
<p>Das Flickern kann auch, wenn man nur zeichnet &quot;wenn es sein muß&quot;, unterdrückt werden.</p>
</blockquote>
<p>Und wie?</p>
<p>Sorry, wenn ich micht etwas blöd anstelle, aber wie man ein Bitmap buffert weiss ich ja eigentlich. Blos bei den anderen DC-Funktionen komme ich nicht klar.</p>
<p>Gruß,<br />
mathi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989328</guid><dc:creator><![CDATA[mathi]]></dc:creator><pubDate>Wed, 08 Feb 2006 13:35:14 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 13:39:18 GMT]]></title><description><![CDATA[<p>Hierbei wird aber der ganze Fensterinhalt als Bitmap gepuffert, also auch was Du mit &quot;TextOut&quot; geschrieben hast.<br />
Man kann doch auch die Daten nur aktualisieren, wenn sich auch was ändert und auch nur die Daten, die in dem Bereich sind, der gezeichnet werden muß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989333</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Wed, 08 Feb 2006 13:39:18 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 13:45:03 GMT]]></title><description><![CDATA[<p>Der oben geschriebene Code ist nicht &quot;ganz&quot; fehlerfrei. Das Prinzip ist aber, daß der Fensterinhalt, der in &quot;pDC&quot; ist in &quot;m_dcMem&quot; kopiert wird, wo vorher ein Bitmap erzeugt wurde. Dieses Bitmap kann dann in den Device-Kontext der Anwendung zurück geschrieben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989340</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Wed, 08 Feb 2006 13:45:03 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Wed, 08 Feb 2006 16:02:20 GMT]]></title><description><![CDATA[<p>Sorry ich packs net!<br />
Also ich habe die OnDraw(CDC* pDC) meiner View-Klasse und dort rufe ich die Draw-Funktion des darzustellenden Objectes auf. Was und wie muss ich jetzt drumrum basteln?</p>
<pre><code>CMyView::OnDraw(CDC* pDC)
{
    // ...?
    &lt;object&gt;.Draw(pDC);
    // ...?

    SetScrollSizes(...);
    CFrameWnd *pParentFrame = (CFrameWnd *)this-&gt;GetParentFrame();
    pParentFrame-&gt;RecalcLayout();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/989463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989463</guid><dc:creator><![CDATA[mathi]]></dc:creator><pubDate>Wed, 08 Feb 2006 16:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Thu, 09 Feb 2006 07:50:44 GMT]]></title><description><![CDATA[<p>Verwendest Du die Klasse &quot;CScrollView&quot;, diese &quot;macht&quot; ein flickerfreies Scrollen. Jetzt habe ich erst Dein Problem verstanden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/989831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989831</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Thu, 09 Feb 2006 07:50:44 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Thu, 09 Feb 2006 09:40:33 GMT]]></title><description><![CDATA[<p>Ich verwende zwar den ScrollView, allerdings habe ich Bereiche in dem View, die nicht gescrollt werden dürfen. Und genau an der Stelle scheitere ich, die bereiche flackern ohne ende. Im Moment bastel ich mir separate Fenster für die Anzeigen, die nicht gescrollt werden sollen, allerdings ist das nicht besonders zufriedenstellend.</p>
<p>Also es wäre nett, wenn du mir das Backbuffering nochmal genauer &quot;programmieren ;-)&quot; könntest, sofern das mit dem scrollview überhaupt zu machen ist.</p>
<p>Gruß,<br />
mathi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989920</guid><dc:creator><![CDATA[mathi]]></dc:creator><pubDate>Thu, 09 Feb 2006 09:40:33 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Thu, 09 Feb 2006 09:50:23 GMT]]></title><description><![CDATA[<p>Was heißt &quot;nicht gescrollt werden dürfen&quot;? Wird nicht das ganze Material aus &quot;OnDraw&quot; gescrollt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989930</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Thu, 09 Feb 2006 09:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Thu, 09 Feb 2006 10:42:02 GMT]]></title><description><![CDATA[<p>Das Prinzip der Backpufferung ist:</p>
<pre><code class="language-cpp">//nachdem die Daten aktualisiert wurden...
CDC *pDC;
RECT rc;

pDC = pView-&gt;GetDC();

m_dcMem = CreateCompatibleDC(pDC);

pView-&gt;GetClientRect(&amp;rc);

m_bitmap.CreateCompatibleBitmap(&amp;m_dcMem,rc.right,rc.bottom);

m_dcMem.SelectObject(&amp;m_bitmap);

m_dcMem.BitBlt(0,0,rc.right,rc.bottom,pDc,0,0,SRCCOPY);

//Jetzt hast Du ein Bitmap von dem View, daß Du zurückschreiben kannst

//In &quot;OnDraw&quot;...

pDC-&gt;BitBlt(0,0,rc.right,rc.bottom,&amp;m_dc,0,0,SRCCOPY);
</code></pre>
<p>Ich hoffe jetzt hast Du das Prinzip verstanden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/989979</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/989979</guid><dc:creator><![CDATA[RR]]></dc:creator><pubDate>Thu, 09 Feb 2006 10:42:02 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt nur mit Bitmaps? on Fri, 10 Feb 2006 12:52:35 GMT]]></title><description><![CDATA[<p>Also ich denke das Prinzip habe ich verstanden: &quot;ins Bitmap zeichnen und dann zurückkopieren&quot; Aber ausser exceptions bekomme ich nix hin. <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>
<blockquote>
<p>Was heißt &quot;nicht gescrollt werden dürfen&quot;?</p>
</blockquote>
<p>Das hat sich inzwischen erledigt. Wäre ja auch ein bischen blöd nen scrollview zu benutzen und beim scrollen wieder das Scrollen herausrechnen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p>Ich mach das jetzt mit extra Fenstern.</p>
<p>Deshalb ist das mit dem Backbuffer auch nicht mehr so extrem akut. Hatte bloss auf einem etwas langsameren rechner ein deutliches &quot;Bildlaufen&quot; beim scrollen bemerkt&quot;</p>
<p>Also thx erstmal!<br />
Gruß,<br />
moskito</p>
]]></description><link>https://www.c-plusplus.net/forum/post/990868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/990868</guid><dc:creator><![CDATA[mathi]]></dc:creator><pubDate>Fri, 10 Feb 2006 12:52:35 GMT</pubDate></item></channel></rss>