<?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[CreateCompatibleBitmap - keine grossen Bitmaps ?]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich habe ein Problem mit CreateCompatibleBitmap:</p>
<p>Wenn ich eine grosse Bitmap (5000 x 500) erstelle, bekomme ich zwar keinen<br />
Fehler, es geht aber etwas schief, weil ich nachher nicht auf diese Bitmap<br />
zeichnen kann. (es erscheint einfach nichts darauf)</p>
<p>Erstelle ich hingegen die Bitmap mit nur 2000x500 funktioniert alles einwandfrei.</p>
<pre><code class="language-cpp">CClientDC dc(this);
CDC memDc;
if(!memDc.CreateCompatibleDC(&amp;dc))
    return FALSE;   
CBitmap bitmap;

if( !bitmap.CreateCompatibleBitmap(&amp;dc, 5000, 500))
    return FALSE;

CBitmap* pOldBitmap = memDc.SelectObject(&amp;bitmap);

// draw something

// BitBlt
</code></pre>
<p>Gibt es einen Trick fuer grosse Bitmaps ?<br />
Oder warum schlaegt CreateCompatibleBitmap fehl (return FALSE wird nie ausgefuehrt) ?</p>
<p>Vielen Dank im Voraus!</p>
<p>Schoene Gruesse,<br />
Captain.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/4707/createcompatiblebitmap-keine-grossen-bitmaps</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Apr 2026 17:10:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/4707.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Feb 2003 11:54:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Wed, 19 Feb 2003 11:54:00 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich habe ein Problem mit CreateCompatibleBitmap:</p>
<p>Wenn ich eine grosse Bitmap (5000 x 500) erstelle, bekomme ich zwar keinen<br />
Fehler, es geht aber etwas schief, weil ich nachher nicht auf diese Bitmap<br />
zeichnen kann. (es erscheint einfach nichts darauf)</p>
<p>Erstelle ich hingegen die Bitmap mit nur 2000x500 funktioniert alles einwandfrei.</p>
<pre><code class="language-cpp">CClientDC dc(this);
CDC memDc;
if(!memDc.CreateCompatibleDC(&amp;dc))
    return FALSE;   
CBitmap bitmap;

if( !bitmap.CreateCompatibleBitmap(&amp;dc, 5000, 500))
    return FALSE;

CBitmap* pOldBitmap = memDc.SelectObject(&amp;bitmap);

// draw something

// BitBlt
</code></pre>
<p>Gibt es einen Trick fuer grosse Bitmaps ?<br />
Oder warum schlaegt CreateCompatibleBitmap fehl (return FALSE wird nie ausgefuehrt) ?</p>
<p>Vielen Dank im Voraus!</p>
<p>Schoene Gruesse,<br />
Captain.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22826</guid><dc:creator><![CDATA[Captain]]></dc:creator><pubDate>Wed, 19 Feb 2003 11:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Wed, 19 Feb 2003 12:42:00 GMT]]></title><description><![CDATA[<p>Wenn CreateCompatibleBitmap keinen Fehler zurückgibt, dann hat alles geklappt. Da ich letztens ein 5800x2500 BMP erstellt habe, weiss ich, dass es funzt. Also liegt der Fehler wohl in dem Stück Deines Codes, den Du uns nicht mitgeteilt hast!</p>
<p>[ Dieser Beitrag wurde am 19.02.2003 um 13:42 Uhr von <strong>RenéG</strong> editiert. ]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22827</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Wed, 19 Feb 2003 12:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Wed, 19 Feb 2003 17:53:00 GMT]]></title><description><![CDATA[<p>Hallo René!</p>
<p>Vielen Dank fuer Dein reply!</p>
<p>Ich bin jetzt Zuhause und hier ist mein Test-Code:</p>
<pre><code class="language-cpp">CBitmap bmp;
                CDC dc2;
        CClientDC dc(this);
                int picwidth = 5000; 
        if (!dc2.CreateCompatibleDC(&amp;dc)) {
            AfxMessageBox(&quot;error&quot;);
            return FALSE;
        }

        if (!bmp.CreateCompatibleBitmap( &amp;dc, picwidth,512)) {
            AfxMessageBox(&quot;error&quot;);
            return FALSE;
        }

        CBitmap* oldbmap=dc2.SelectObject(&amp;bmp);

            CPen pen( PS_SOLID, 0, RGB(255,255,255));
        CPen* pPenOld = dc2.SelectObject( &amp;pen );
        int nMap = dc2.SetMapMode( MM_TEXT );

        for (i=0;i&lt;picwidth;i++) {
            dc2.MoveTo( i, 300 );
            dc2.LineTo( i, 300 );
        }

        dc2.SetMapMode( nMap );
            dc2.SelectObject( pPenOld );        

        pDC-&gt;BitBlt(5,5, 600 , 512 ,&amp;dc2,0,0,SRCCOPY);
        dc2.SelectObject(oldbmap);
</code></pre>
<p>Die weisse Linie ist bei z.b. picwidth = 1000 sichtbar, aber nicht mehr bei 5000.</p>
<p>Vielen Dank fuer Deine Hilfe!</p>
<p>Schöne Gruesse,<br />
Hannes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22828</guid><dc:creator><![CDATA[Captain]]></dc:creator><pubDate>Wed, 19 Feb 2003 17:53:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Thu, 20 Feb 2003 07:17:00 GMT]]></title><description><![CDATA[<p>Hm, wer hat Dir eigentlich erzählt, dass eine Linie so gezeichnet wird:</p>
<pre><code class="language-cpp">for (i=0;i&lt;picwidth;i++) {
            dc2.MoveTo( i, 300 );
            dc2.LineTo( i, 300 );
        }
</code></pre>
<p><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="😕"
    /> <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="😕"
    /> <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>Probiers mal so:</p>
<pre><code class="language-cpp">dc2.MoveTo( 0, 300 );
dc2.LineTo( picwidth, 300 );
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/22829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22829</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Thu, 20 Feb 2003 07:17:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Thu, 20 Feb 2003 15:09:00 GMT]]></title><description><![CDATA[<p>Ja, schon klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Könntest Du bitte ein Snippet von Deinem '5800x2500 BMP' Project posten ?</p>
<p>Vielleicht sehe ich dann was ich falsch mache...</p>
<p>Vielen Dank! <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>
<p>Hannes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22830</guid><dc:creator><![CDATA[Captain]]></dc:creator><pubDate>Thu, 20 Feb 2003 15:09:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Fri, 21 Feb 2003 07:50:00 GMT]]></title><description><![CDATA[<p>Da ich mit der WTL arbeite, sieht das so aus:</p>
<pre><code class="language-cpp">CPaintDC dc( m_hWnd);
CBitmap bmp;
CDC dc2;
dc2.CreateCompatibleDC( dc);
bmp.CreateCompatibleBitmap( dc, 5800, 2500);
CBitmapHandle oldBmp = dc2.SelectBitmap( bmp);
dc2.FillSolidRect( CRect( 0, 300, 5000, 301), RGB( 255, 255, 255));
dc.BitBlt( 0, 0, 600, 512, dc2.m_hDC, 0, 0, SRCCOPY);
dc2.SelectBitmap( oldBmp);
</code></pre>
<p>Also nix anderes im Vgl. zur MFC!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22831</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Fri, 21 Feb 2003 07:50:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Fri, 21 Feb 2003 10:56:00 GMT]]></title><description><![CDATA[<p>Vielen Dank René! <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>
<p>Ich werds gleich heute Abend mit CPaintDC, CBitmapHandle, SelectBitmap probieren. Vielleicht liegt da der Hund begraben <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>Schöne Grüße,<br />
Hannes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22832</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22832</guid><dc:creator><![CDATA[Captain]]></dc:creator><pubDate>Fri, 21 Feb 2003 10:56:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Sat, 22 Feb 2003 02:13:00 GMT]]></title><description><![CDATA[<p>DES RÄTSELS LÖSUNG <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>
<p>Anstatt dieses Teils</p>
<pre><code class="language-cpp">CPen pen( PS_SOLID, 0, RGB(255,255,255));
        CPen* pPenOld = dc2.SelectObject( &amp;pen );
        int nMap = dc2.SetMapMode( MM_TEXT );

        for (i=0;i&lt;picwidth;i++) {
            dc2.MoveTo( i, 300 );
            dc2.LineTo( i, 300 );
        }

        dc2.SetMapMode( nMap );
        dc2.SelectObject( pPenOld );
</code></pre>
<p>hatte ich meine methode 'setpix' verwendet.<br />
Da liegt das Problem!</p>
<p>Ich setze meine Pixel jetzt nicht mehr mit mit 'setpix' (siehe snippet unten) sondern direkt mit FillSolidRect anstatt des Methodenaufrufs 'setpix' (ok, vielleicht etwas 'russisch' aber es funzt).<br />
Seit dieser Änderung gibt es keine Probleme mehr! Die bitmap wird korrekt angezeigt.</p>
<pre><code class="language-cpp">void CRomeView::setpix (COLORREF color, int x, int y)
{

    CPen pen( PS_SOLID, 0, color);
    CPen* pPenOld = dc2.SelectObject( &amp;pen );
    int nMap = dc2.SetMapMode( MM_TEXT );

    dc2.MoveTo( x, y );
    dc2.LineTo( x, y );

    dc2.SetMapMode( nMap );
    dc2.SelectObject( pPenOld );

}
</code></pre>
<p>Es geht jetzt zwar, aber was ist in 'setpix' falsch ?<br />
bzw. warum und wie beeinflußt das die bitmap ?</p>
<p>Herzlichen Dank für die Geduld mit mir. <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>
<p>Schöne Grüße,<br />
Hannes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/22833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/22833</guid><dc:creator><![CDATA[Captain]]></dc:creator><pubDate>Sat, 22 Feb 2003 02:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to CreateCompatibleBitmap - keine grossen Bitmaps ? on Wed, 07 Feb 2007 10:40:08 GMT]]></title><description><![CDATA[<p>Na ich denke doch mal, dass</p>
<pre><code class="language-cpp">dc2.MoveTo( x, y );
dc2.LineTo( x, y );
</code></pre>
<p>kein Pixel darstellt, weil eine Linie von (x,y) bis (x,y) gezogen wird, wobei der Zielpukt selbst nicht mehr gemalt wird.<br />
In diesem Falle wird also gar kein Punkt gezeichnet...<br />
Oder liege ich da falsch?</p>
<p>Aber warum sollte man ueberhaupt auf diese Weise einen einzigen Punkt zeichnen wollen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1224322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1224322</guid><dc:creator><![CDATA[RonB]]></dc:creator><pubDate>Wed, 07 Feb 2007 10:40:08 GMT</pubDate></item></channel></rss>