<?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[Transparentes CDC für Bitmap]]></title><description><![CDATA[<p>Ich erzeuge mir ein CDC welches ich anschließend transparent mache,<br />
dieses neue CDC kann ich mir dann auch wunderbar anzeigen lassen.</p>
<p>Nun will ich daraus ein transparentes CBitmap erzeugen, was ich momentan so mache:</p>
<pre><code class="language-cpp">// Alles in ein TempDC kopieren, um ein Bitmap daraus zu erstellen
	CDC *TempDC = new CDC;
	TempDC-&gt;CreateCompatibleDC(pDC);
	CBitmap bitmap;
	bitmap.CreateCompatibleBitmap(pDC, m_nTransBmpWidth, m_nTransBmpHeight);

	TempDC-&gt;SelectObject( &amp;bitmap );
	TempDC-&gt;BitBlt(0,0, m_nTransBmpWidth, m_nTransBmpHeight, pDC, 10, 10, SRCCOPY);
	TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pMaskMemDC,0,0,SRCAND);
	TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pTransMemDC,0,0,SRCPAINT);
</code></pre>
<p>Mein Problem ist nun das ich nun ein Bitmap bekomme, welches zwar dort wo ich es durchsichtig gemacht habe, durchsichtig ist, aber insgesamt den grauen Hintergrund meines CDCs besitzt und dort eben nicht transparent ist sondern grau.</p>
<p>Ich kriegs nicht auf die Reihe ein transparentes CDC zu erstellen, dem ich dann mittels</p>
<pre><code class="language-cpp">TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pMaskMemDC,0,0,SRCAND);
TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pTransMemDC,0,0,SRCPAINT);
</code></pre>
<p>das eigentliche Bild drauf blitten kann.</p>
<p>Vielleicht kann mir einen helfen ?</p>
<p>Edit: Vielleicht kann man ein Transparentes Icon als resource laden, dieses vergrößern, und darauf das transparente Bild blitten ?<br />
Aber wie ? Oder schlechte Idee ? Weiss garnicht mehr weiter...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192240/transparentes-cdc-für-bitmap</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 15:29:35 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192240.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Sep 2007 05:39:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Transparentes CDC für Bitmap on Wed, 12 Sep 2007 05:44:57 GMT]]></title><description><![CDATA[<p>Ich erzeuge mir ein CDC welches ich anschließend transparent mache,<br />
dieses neue CDC kann ich mir dann auch wunderbar anzeigen lassen.</p>
<p>Nun will ich daraus ein transparentes CBitmap erzeugen, was ich momentan so mache:</p>
<pre><code class="language-cpp">// Alles in ein TempDC kopieren, um ein Bitmap daraus zu erstellen
	CDC *TempDC = new CDC;
	TempDC-&gt;CreateCompatibleDC(pDC);
	CBitmap bitmap;
	bitmap.CreateCompatibleBitmap(pDC, m_nTransBmpWidth, m_nTransBmpHeight);

	TempDC-&gt;SelectObject( &amp;bitmap );
	TempDC-&gt;BitBlt(0,0, m_nTransBmpWidth, m_nTransBmpHeight, pDC, 10, 10, SRCCOPY);
	TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pMaskMemDC,0,0,SRCAND);
	TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pTransMemDC,0,0,SRCPAINT);
</code></pre>
<p>Mein Problem ist nun das ich nun ein Bitmap bekomme, welches zwar dort wo ich es durchsichtig gemacht habe, durchsichtig ist, aber insgesamt den grauen Hintergrund meines CDCs besitzt und dort eben nicht transparent ist sondern grau.</p>
<p>Ich kriegs nicht auf die Reihe ein transparentes CDC zu erstellen, dem ich dann mittels</p>
<pre><code class="language-cpp">TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pMaskMemDC,0,0,SRCAND);
TempDC-&gt;BitBlt(0,0,m_nTransBmpWidth,m_nTransBmpHeight,m_pTransMemDC,0,0,SRCPAINT);
</code></pre>
<p>das eigentliche Bild drauf blitten kann.</p>
<p>Vielleicht kann mir einen helfen ?</p>
<p>Edit: Vielleicht kann man ein Transparentes Icon als resource laden, dieses vergrößern, und darauf das transparente Bild blitten ?<br />
Aber wie ? Oder schlechte Idee ? Weiss garnicht mehr weiter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1363759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1363759</guid><dc:creator><![CDATA[Multiplex]]></dc:creator><pubDate>Wed, 12 Sep 2007 05:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to Transparentes CDC für Bitmap on Wed, 12 Sep 2007 16:06:49 GMT]]></title><description><![CDATA[<p><a href="http://www.codeproject.com/bitmap/transbitmapmask.asp" rel="nofollow">http://www.codeproject.com/bitmap/transbitmapmask.asp</a></p>
<p><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/1364129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364129</guid><dc:creator><![CDATA[a]]></dc:creator><pubDate>Wed, 12 Sep 2007 16:06:49 GMT</pubDate></item><item><title><![CDATA[Reply to Transparentes CDC für Bitmap on Thu, 13 Sep 2007 17:18:43 GMT]]></title><description><![CDATA[<p>Tja das hilft mir halt überhaupt nicht weiter, und beantwortet auch meine Frage nicht, denn soweit, das ich ein transparentes Bitmap habe, bin ich schon,</p>
<p>aber ich kann das Bild aus dem CDC nicht mit transparenten alphakanal abspeichern, weil statt dessen der hintergrund der applikation (grau) dort erscheint, wo es eigentlich durchsichtig sein sollte.</p>
<p>Und das Bild ist durchsichtig, da dies ja vorher einen weissen hintergrund hatte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1364803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1364803</guid><dc:creator><![CDATA[Multiplex]]></dc:creator><pubDate>Thu, 13 Sep 2007 17:18:43 GMT</pubDate></item><item><title><![CDATA[Reply to Transparentes CDC für Bitmap on Sat, 15 Sep 2007 16:42:42 GMT]]></title><description><![CDATA[<p>Du musst den Brush deiner Fensterklasse auf den Null-Brush setzen.</p>
<pre><code>SetClassLong(m_hWnnd,GCL_HBRBACKGROUND,(LPARAM)GetStockObject(NULL_BRUSH));
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1365993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1365993</guid><dc:creator><![CDATA[AZ]]></dc:creator><pubDate>Sat, 15 Sep 2007 16:42:42 GMT</pubDate></item></channel></rss>