<?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[ein double buffering problem]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich habe ein kleines problem mit dem double buffering, dass Bild flickert immer, Ich hoffe das ihr mirr helfen konnt, Danke.<br />
Hier ist der source code:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
                            HDC hdc, hdcMem;
                            HBITMAP hbmpBackground, hbmpSlika, hbmpMemStari, hBM;
                            PAINTSTRUCT ps;
                            BITMAP bitmap;
                            static int poz=250,pol=2,obll=1,obld=1;

switch (message)
{
case WM_CREATE:

                            SetTimer (hwnd, ID_TIMER, 80, NULL) ;
                            char xy[3];
return 0 ;

case WM_TIMER :

if(poz&gt;450)pol=1;

                            else if(poz&lt;5)pol=2;
                            InvalidateRect (hwnd, NULL, TRUE) ;
return 0 ;

case WM_PAINT:
                            hdc = BeginPaint(hwnd, &amp;ps);
                            hdcMem = CreateCompatibleDC(hdc);
                            hBM = CreateCompatibleBitmap(hdc, 500, 200);
                            SelectObject(hdcMem, hBM);
                            hbmpBackground = (HBITMAP)LoadImage(NULL, &quot;slike/background.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpBackground);
                            BitBlt(hdc, 0, 0, 500, 200, hdcMem, 0, 0, SRCCOPY);

if(pol==2){

    switch (obld){

            case 1:         hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream1D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld+=1;
            break;

                    case 2: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream2D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld+=1;
        break;

                    case 3: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream3D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld=1;
        break;

}
                            itoa(poz,xy,10);
                            BitBlt(hdc, poz, 125, 43, 42, hdcMem, 0, 0, SRCCOPY);
                            TextOut(hdc, poz+10, 90,xy,strlen(xy));
                            poz+=5;
                            }
else if(pol==1){

    switch (obll){

                    case 1: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream1L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll+=1;
        break;

                    case 2: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream2L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll+=1;
        break;

                    case 3: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream3L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll=1;
        break;

}
                            itoa(poz,xy,10);
                            BitBlt(hdc, poz, 125, 43, 42, hdcMem, 0, 0, SRCCOPY);
                            TextOut(hdc, poz+10, 90,xy,strlen(xy));
                            poz-=5;
                            }
                            DeleteObject(hbmpSlika);
                            DeleteObject(hBM);
                            DeleteDC(hdcMem);
                            EndPaint(hwnd, &amp;ps);
return 0;

case WM_DESTROY:
                            PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/227693/ein-double-buffering-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 11 Apr 2026 02:51:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/227693.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 18 Nov 2008 20:33:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 21:05:55 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich habe ein kleines problem mit dem double buffering, dass Bild flickert immer, Ich hoffe das ihr mirr helfen konnt, Danke.<br />
Hier ist der source code:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
                            HDC hdc, hdcMem;
                            HBITMAP hbmpBackground, hbmpSlika, hbmpMemStari, hBM;
                            PAINTSTRUCT ps;
                            BITMAP bitmap;
                            static int poz=250,pol=2,obll=1,obld=1;

switch (message)
{
case WM_CREATE:

                            SetTimer (hwnd, ID_TIMER, 80, NULL) ;
                            char xy[3];
return 0 ;

case WM_TIMER :

if(poz&gt;450)pol=1;

                            else if(poz&lt;5)pol=2;
                            InvalidateRect (hwnd, NULL, TRUE) ;
return 0 ;

case WM_PAINT:
                            hdc = BeginPaint(hwnd, &amp;ps);
                            hdcMem = CreateCompatibleDC(hdc);
                            hBM = CreateCompatibleBitmap(hdc, 500, 200);
                            SelectObject(hdcMem, hBM);
                            hbmpBackground = (HBITMAP)LoadImage(NULL, &quot;slike/background.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpBackground);
                            BitBlt(hdc, 0, 0, 500, 200, hdcMem, 0, 0, SRCCOPY);

if(pol==2){

    switch (obld){

            case 1:         hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream1D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld+=1;
            break;

                    case 2: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream2D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld+=1;
        break;

                    case 3: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream3D.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obld=1;
        break;

}
                            itoa(poz,xy,10);
                            BitBlt(hdc, poz, 125, 43, 42, hdcMem, 0, 0, SRCCOPY);
                            TextOut(hdc, poz+10, 90,xy,strlen(xy));
                            poz+=5;
                            }
else if(pol==1){

    switch (obll){

                    case 1: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream1L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll+=1;
        break;

                    case 2: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream2L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll+=1;
        break;

                    case 3: hBM = CreateCompatibleBitmap(hdc, 43, 42);
                            SelectObject(hdcMem, hBM);
                            hbmpSlika = (HBITMAP)LoadImage(NULL, &quot;slike/cream3L.bmp&quot;,
                            IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
                            SelectObject(hdcMem, hbmpSlika);
                            obll=1;
        break;

}
                            itoa(poz,xy,10);
                            BitBlt(hdc, poz, 125, 43, 42, hdcMem, 0, 0, SRCCOPY);
                            TextOut(hdc, poz+10, 90,xy,strlen(xy));
                            poz-=5;
                            }
                            DeleteObject(hbmpSlika);
                            DeleteObject(hBM);
                            DeleteDC(hdcMem);
                            EndPaint(hwnd, &amp;ps);
return 0;

case WM_DESTROY:
                            PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1616799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616799</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 21:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 20:38:39 GMT]]></title><description><![CDATA[<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616801</guid><dc:creator><![CDATA[vlad_tepesch]]></dc:creator><pubDate>Tue, 18 Nov 2008 20:38:39 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 20:41:34 GMT]]></title><description><![CDATA[<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
</blockquote>
<p>Dass wurde gehrne aber ich muss es in c schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616802</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 20:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 20:57:37 GMT]]></title><description><![CDATA[<p>zero_cool schrieb:</p>
<blockquote>
<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
</blockquote>
<p>Dass wurde gehrne aber ich muss es in c schreiben</p>
</blockquote>
<p>Hallo,</p>
<p>Du initialisierst, wenn es nicht soweit ist, wie hier:</p>
<p>HDC hdc, hdcMem; // &lt;---<br />
HBITMAP hbmpBackground, hbmpSlika, hbmpMemStari, hBM; // &lt;----<br />
PAINTSTRUCT ps;<br />
BITMAP bitmap;<br />
static int poz=250,pol=2,obll=1,obld=1; // &lt;---</p>
<p>im Kopf der Callpack-Routine.</p>
<p>Das gehört da nicht hin.<br />
Deine Mem-GDI-Platform CompatibleBitmap definierst eh immer gleich, warum<br />
legst Du die nicht von Beginn an als Blackmap ab?</p>
<p>Beginne in WM_PAINT mit<br />
BeginPaint( ... )<br />
... Anweisungen<br />
EndPaint( ... )</p>
<p>Innerhalb von BeginPaint zu EndPaint, darin solltest Du klar zuweisen.</p>
<p>Innerhalb des Callbacks etwas von File zu laden ist absolut nicht drin! Lade es vorher! Besser stelle es in die Resource. Das kostet Zeit viel Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616811</guid><dc:creator><![CDATA[CStern]]></dc:creator><pubDate>Tue, 18 Nov 2008 20:57:37 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 20:57:14 GMT]]></title><description><![CDATA[<p>zero_cool schrieb:</p>
<blockquote>
<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
</blockquote>
<p>Dass wurde gehrne aber ich muss es in c schreiben</p>
</blockquote>
<p>ROFL</p>
<p>Die cpp-Tags führen lediglich zur Darstellung deines Codes mit Syntaxhighlighting. Tus einfach...</p>
<p>cheers, Swordfish</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616816</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616816</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 18 Nov 2008 20:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 21:09:02 GMT]]></title><description><![CDATA[<p>hier ich habs getan</p>
<p>sorry fur die rechtzschreibung, bin etwas eingerosstet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616818</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 21:09:02 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 21:12:32 GMT]]></title><description><![CDATA[<p>hier ich habs getan</p>
<p>sorry fur die rechtzschreibung, bin etwas eingerosstet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616819</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 21:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 21:13:29 GMT]]></title><description><![CDATA[<p>Swordfish schrieb:</p>
<blockquote>
<p>zero_cool schrieb:</p>
<blockquote>
<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
</blockquote>
<p>Dass wurde gehrne aber ich muss es in c schreiben</p>
</blockquote>
<p>ROFL</p>
<p>Die cpp-Tags führen lediglich zur Darstellung deines Codes mit Syntaxhighlighting. Tus einfach...</p>
<p>cheers, Swordfish</p>
</blockquote>
<p>ok ich habs getan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616820</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 21:13:29 GMT</pubDate></item><item><title><![CDATA[Reply to ein double buffering problem on Tue, 18 Nov 2008 21:22:06 GMT]]></title><description><![CDATA[<p>[quote=&quot;CStern&quot;][quote=&quot;zero_cool&quot;]</p>
<p>vlad_tepesch schrieb:</p>
<blockquote>
<p>benutze cpp tags, so hat keiner lust sich den Code anzutun</p>
</blockquote>
<p>Kannst du etwas genauer werrden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1616823</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1616823</guid><dc:creator><![CDATA[zero_cool]]></dc:creator><pubDate>Tue, 18 Nov 2008 21:22:06 GMT</pubDate></item></channel></rss>