<?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() - Bildfehler]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe folgenden Code für die Animation:</p>
<pre><code class="language-cpp">hdc = GetDC(hwnd);
hdc_buffer = CreateCompatibleDC(hdc);
hdc_mem = CreateCompatibleDC(hdc_buffer);

hbmp_back = CreateCompatibleBitmap(hdc_buffer,rcClient.right,rcClient.bottom);
hbmp_old1 = SelectObject(hdc_buffer,hbmp_back);
FillRect(hdc_buffer,&amp;rcClient,(HBRUSH)GetStockObject(WHITE_BRUSH));

hbmp_old2 = SelectObject(hdc_mem,stan.hbmp_stan);	
BitBlt(hdc_buffer,stan.x,stan.y,bmp.bmWidth,bmp.bmHeight ,hdc_mem,0,0,SRCCOPY);

BitBlt(hdc,0,0,rcClient.right,rcClient.bottom,hdc_buffer,0,0,SRCCOPY);

SelectObject(hdc_buffer,hbmp_old1);
SelectObject(hdc_mem,hbmp_old2);
ReleaseDC(hwnd,hdc);
</code></pre>
<p>Dummerweise, ist das nun kein Bild vom Stan, das da angezeigt wird, sondern<br />
ein schwarzer Kasten mit ein paar weißen Punkten drin.</p>
<p>Wenn ich nur</p>
<pre><code class="language-cpp">GetDC() - SelectObject(hdc_mem,object) - BitBlt(hdc,stan.x,stan.y,stan.width,stan.height,hdc_mem,SRCCOPY) - ReleaseDC(hdc)
</code></pre>
<p>nutze, funzt die Animation, nur halt, dass das Bild von Stan Schlieren zieht. (Klar wenn der Hintergrund nich übermalt wird)</p>
<p>Kann mir jemand sagen, warum das so ist?!<br />
Ich habe schon andere Flags bei BitBlt ausprobiert, hilft aber nicht wirklich.<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118357/bitblt-bildfehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 04 Jul 2026 11:18:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118357.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 17 Aug 2005 15:25:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Wed, 17 Aug 2005 15:29:25 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe folgenden Code für die Animation:</p>
<pre><code class="language-cpp">hdc = GetDC(hwnd);
hdc_buffer = CreateCompatibleDC(hdc);
hdc_mem = CreateCompatibleDC(hdc_buffer);

hbmp_back = CreateCompatibleBitmap(hdc_buffer,rcClient.right,rcClient.bottom);
hbmp_old1 = SelectObject(hdc_buffer,hbmp_back);
FillRect(hdc_buffer,&amp;rcClient,(HBRUSH)GetStockObject(WHITE_BRUSH));

hbmp_old2 = SelectObject(hdc_mem,stan.hbmp_stan);	
BitBlt(hdc_buffer,stan.x,stan.y,bmp.bmWidth,bmp.bmHeight ,hdc_mem,0,0,SRCCOPY);

BitBlt(hdc,0,0,rcClient.right,rcClient.bottom,hdc_buffer,0,0,SRCCOPY);

SelectObject(hdc_buffer,hbmp_old1);
SelectObject(hdc_mem,hbmp_old2);
ReleaseDC(hwnd,hdc);
</code></pre>
<p>Dummerweise, ist das nun kein Bild vom Stan, das da angezeigt wird, sondern<br />
ein schwarzer Kasten mit ein paar weißen Punkten drin.</p>
<p>Wenn ich nur</p>
<pre><code class="language-cpp">GetDC() - SelectObject(hdc_mem,object) - BitBlt(hdc,stan.x,stan.y,stan.width,stan.height,hdc_mem,SRCCOPY) - ReleaseDC(hdc)
</code></pre>
<p>nutze, funzt die Animation, nur halt, dass das Bild von Stan Schlieren zieht. (Klar wenn der Hintergrund nich übermalt wird)</p>
<p>Kann mir jemand sagen, warum das so ist?!<br />
Ich habe schon andere Flags bei BitBlt ausprobiert, hilft aber nicht wirklich.<br />
MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854325</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854325</guid><dc:creator><![CDATA[a.me]]></dc:creator><pubDate>Wed, 17 Aug 2005 15:29:25 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Wed, 17 Aug 2005 15:37:28 GMT]]></title><description><![CDATA[<p>Mal abgesehen davon daß dieser Beitrag eigentlich ins WinAPI Forum gehöhrt:</p>
<p>Hast du den Code im Messageloop unter WM_PAINT:?</p>
<p>bzw. in welchen intervallen wird geblittet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854331</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854331</guid><dc:creator><![CDATA[_BackBONE_]]></dc:creator><pubDate>Wed, 17 Aug 2005 15:37:28 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Wed, 17 Aug 2005 21:24:05 GMT]]></title><description><![CDATA[<p>Oh, verflucht. Ich dachte, ich hätte unter WinAPI geposted. <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="🙄"
    /><br />
Sorry.</p>
<p>Der zitierte Code befindet sich in einem &quot;case WM_TIMER:&quot;, das alle 50ms<br />
ausgeführt wird.</p>
<pre><code class="language-cpp">hbmp_old = (HBITMAP) SelectObject(hdc_mem,stan.hbmp_stan);	
		BitBlt(hdc_buffer,0,0,bmp.bmWidth,bmp.bmHeight ,hdc_mem,0,0,SRCCOPY);

		BitBlt(hdc,x,y,bmp.bmWidth,bmp.bmHeight ,hdc_buffer,0,0,SRCCOPY);
</code></pre>
<p>Also, nichtmal dieses funktioniert! Was mache ich beim Double Buffering falsch?!<br />
Ohne DB gehts ja, flimmert halt nur doof. <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=":confused:"
      alt="😕"
    /></p>
<p>Danke, für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854487</guid><dc:creator><![CDATA[a.me]]></dc:creator><pubDate>Wed, 17 Aug 2005 21:24:05 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Sat, 20 Aug 2005 07:45:25 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=403" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=4" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/854766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854766</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sat, 20 Aug 2005 07:45:25 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Sat, 20 Aug 2005 14:22:34 GMT]]></title><description><![CDATA[<p>Ich binn zwar auch nicht der Experte, mach jetzt erst seit ca. 3 Monaten mit der<br />
WinAPI rum.<br />
Würde aber empfehlen unter WM_TIMER den bereich der zu zeichnen ist mit InvalidateRect ungültig zu machen, und unter WM_PAINT zu zeichnen.<br />
Dann solltest du mal probieren dinen DC mit BeginPaint zu erhalten (natürlich nur beim empfangen von WM_PAINT). Ich hatte auch schon komische ergebnisse wenn ich mit GetDC gearbeitet hab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/854968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/854968</guid><dc:creator><![CDATA[_BackBONE_]]></dc:creator><pubDate>Sat, 20 Aug 2005 14:22:34 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Sat, 20 Aug 2005 22:51:45 GMT]]></title><description><![CDATA[<p>Du musst das CreateCompatibleBitmap immer mit dem richtigen DC aufrufen (also hdc statt hdc_buffer), da der Memory DC nach dem erstellen immer Schwar-Weiß ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/855155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/855155</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sat, 20 Aug 2005 22:51:45 GMT</pubDate></item><item><title><![CDATA[Reply to BitBlt() - Bildfehler on Wed, 24 Aug 2005 20:41:20 GMT]]></title><description><![CDATA[<p>flenders schrieb:</p>
<blockquote>
<p>Du musst das CreateCompatibleBitmap immer mit dem richtigen DC aufrufen (also hdc statt hdc_buffer), da der Memory DC nach dem erstellen immer Schwar-Weiß ist.</p>
</blockquote>
<p>Jo, daran hat es gelegen. Ich glaube ich muss mich noch ein wenig in GDI einlesen.<br />
Kennt ihr da noch andere gute Quellen außer der MSDN?</p>
<p>VIELEN DANK EUCH ALLEN!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/857869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/857869</guid><dc:creator><![CDATA[a.me]]></dc:creator><pubDate>Wed, 24 Aug 2005 20:41:20 GMT</pubDate></item></channel></rss>