<?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[Bitmap auf anderes Bitmap kopieren]]></title><description><![CDATA[<p>Hi!<br />
Wie kann ich den Inhalt eines HBITMAPS auf ein anderes HBITMAP kopieren? Also auch auschnittsweise? Also wie so ne Art &quot;Collage&quot;?<br />
BitBlt usw wollen ja alle ein HDC aber wenn ich beide HBITMAPS in zwei unterschiedliche DCs selektiere und dann z.b. bitblt ausführe geschieht nichts. Und wie kann ich dann den inhalte des ZielHDCs wieder auf mein Ziel-HBITMAP bekommen?<br />
Dank im voraus<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129497/bitmap-auf-anderes-bitmap-kopieren</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 13:13:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129497.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Dec 2005 09:59:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Wed, 14 Dec 2005 09:59:49 GMT]]></title><description><![CDATA[<p>Hi!<br />
Wie kann ich den Inhalt eines HBITMAPS auf ein anderes HBITMAP kopieren? Also auch auschnittsweise? Also wie so ne Art &quot;Collage&quot;?<br />
BitBlt usw wollen ja alle ein HDC aber wenn ich beide HBITMAPS in zwei unterschiedliche DCs selektiere und dann z.b. bitblt ausführe geschieht nichts. Und wie kann ich dann den inhalte des ZielHDCs wieder auf mein Ziel-HBITMAP bekommen?<br />
Dank im voraus<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/941713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941713</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Wed, 14 Dec 2005 09:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Wed, 14 Dec 2005 19:38:49 GMT]]></title><description><![CDATA[<p>also ich würde da jetzt einfach mal so sagen:</p>
<pre><code class="language-cpp">BitBlt(ps.hdc, 0, 0, 100, 100, hDCBitmap1, 0, 0, SRCCOPY);
BitBlt(ps.hdc, 25, 25, 50, 50, hDCBitmapDrueber, 0, 0, SRCCOPY);
</code></pre>
<p>bin mir aber nicht so sicher, ob das die sache ist, die du haben willst.</p>
<p>hui, habe ge´rade was gesehn...</p>
<p>sicher, dass du die HBITMAPs static gemacht hast? häufiger fehler.<br />
wenn nicht gib mal nen bissel code</p>
]]></description><link>https://www.c-plusplus.net/forum/post/942271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942271</guid><dc:creator><![CDATA[ItsNotYou]]></dc:creator><pubDate>Wed, 14 Dec 2005 19:38:49 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Thu, 15 Dec 2005 06:00:43 GMT]]></title><description><![CDATA[<p>vielen dank für die antwort!<br />
Allerdings sieht mir dein Codebeispiel eher danach aus, dass du erst den Inhalt des 1. Bitmaps und dann den des 2. Bitmaps ins Fenster zeichnest. Dadurch entsteht natürlich eine Überlappung beider Bilder. Jedoch würde ich statt ins Fenster lieber in ein anderes Bitmap schreiben, dass ich dann irgendwann mal ins Fenster zeichnen kann. Für meinen Fall muss ich ein Bild generieren aus mehrern Einzelbildern und als HBITMAP speichern um es dann regelmäßig auszugeben (und es nur einmal generieren zu müssen)</p>
<p>Das ist das was ich ausprobiert habe und was nicht funktioniert:</p>
<pre><code class="language-cpp">HBITMAP bit1, bit2;
HDC hDC, mDC;
SelectObject(mDC, bit1);
BitBlt(hDC,..., mDC); //Ich lass mal die anderen params weg
SelectObject(mDC, bit1);
BitBlt(hDC,..., mDC); //Ich lass mal die anderen params weg
//Ok super jetzt hab ich beide Bitmaps ins hDC gezeichnet, und nun? Wie kriege ich den Inhalt des hDC in ein anderes Bitmap??
</code></pre>
<p>Also ich hoffe ich hab mich klar ausgedrückt<br />
danke<br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/942522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942522</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Thu, 15 Dec 2005 06:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Thu, 15 Dec 2005 06:27:34 GMT]]></title><description><![CDATA[<p>Mach dich mal über Double-Buffering schlau. Ich denke, das ist das, was du suchst.</p>
<p>Du brauchst auf jeden Fall noch ein CreateCompatibleDC und CreateCompatibleBitmap. Du kannst nicht einfach eine Variable vom Typ HDC bzw. HBITMAP deklarieren/definieren und dann erwarten, dass das schon gültige Pointer sind - und was für eine Größe sollten die Bitmaps dann überhaupt haben <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>
]]></description><link>https://www.c-plusplus.net/forum/post/942525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/942525</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 15 Dec 2005 06:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Sat, 17 Dec 2005 12:16:40 GMT]]></title><description><![CDATA[<p>danke flenders. Allerdings kann ich mit dem Beispielcode zu double-buffering noch nicht anfangen da dort nur steht wie man ein buffer-hdc erzeugt.</p>
<p>Ich habe dazu eine Frage: Ich hab ja dann ein buffer-hdc -&gt; wie kriege ich das dann ins window-hdc?</p>
<p>danke <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="🙂"
    /><br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944222</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Sat, 17 Dec 2005 12:16:40 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Sat, 17 Dec 2005 15:15:55 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<pre><code>BitBlt(window-hdc,...,buffer-hdc,...,SRCCOPY);
</code></pre>
<p>Gruß,<br />
DC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944336</guid><dc:creator><![CDATA[Don Carsto]]></dc:creator><pubDate>Sat, 17 Dec 2005 15:15:55 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Sat, 17 Dec 2005 19:12:31 GMT]]></title><description><![CDATA[<p>vielen dank!</p>
<p>Ich hab jetzt glaube ich das Prinzip begriffen und folgenden Code geschrieben:</p>
<pre><code class="language-cpp">TBuffer::TBuffer(HWND fhwnd)
    {
        hwnd=fhwnd;
        hdc=CreateCompatibleDC(GetDC(hwnd));
        bitmap=new TImage(hwnd);
        bitmap-&gt;handle = CreateCompatibleBitmap(GetDC(hwnd), GetWinWidth(hwnd), GetWinHeight(hwnd));
        SelectObject(hdc, bitmap-&gt;handle);
    }

    bool TBuffer::CopyBitmap(TImage *fbitmap, TRect src, TRect dest, DWORD code)
    {
        HDC chdc=CreateCompatibleDC(GetDC(hwnd));
        SelectObject(chdc, fbitmap-&gt;handle);
        FillRect( hdc, &amp;NormRect(0,0,GetWinWidth(hwnd), GetWinHeight(hwnd)), (HBRUSH)GetStockObject(WHITE_BRUSH));
        StretchBlt(GetDC(hwnd), src.ix, src.iy, src.fx, src.fy, chdc, dest.ix, dest.iy, dest.fx, dest.fy, SRCCOPY); 
        return true;        
    }
</code></pre>
<p>TImage ist dabei eine selbstgeschriebene Klasse die über -&gt;handle ein HBITMAP zur verfügung stellt. Ich rufe zuerst den Konstruktor auf um den HDC hdc (eine eigenschaft von TBuffer) als Kopier des WinHDCzu erzeugen. Dann erzeuge ich in CopyBitmap() ein zweites hdc, selektiere dort mein übergebendes HBITMAP rein (also fbitmap-&gt;handle) und zeichne es dann auf mein hdc. Wenn ich dann aber das hdc ins Fenster zeichne (Die zeichenfunktion funktioniert sonst einwandfrei), geschieht nichts.<br />
Woran könnte das liegen? Ich dachte ich hätte jetzt an alle HDCs und HBITMAPs gedacht <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>
<p>cu<br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/944479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944479</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Sat, 17 Dec 2005 19:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Bitmap auf anderes Bitmap kopieren on Sat, 17 Dec 2005 19:19:50 GMT]]></title><description><![CDATA[<p>sry ich bin total bekloppt. Die Zeichenfunktion die verwendet habe hat schrott gebaut. Sry. -&gt; Closen wenn möglich <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="😉"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/944482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/944482</guid><dc:creator><![CDATA[chris90]]></dc:creator><pubDate>Sat, 17 Dec 2005 19:19:50 GMT</pubDate></item></channel></rss>