<?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[UpdateLayeredWindow mit Bitmaps]]></title><description><![CDATA[<p>Ich würde gerne eine Bitmap auf einem Fenster anzeigen. Dabei sollen einige Stellen der Bitmap transparent sein.</p>
<p>Also hab ich mir folgendes gedacht: Ich habe eine Bitmap mit den Farben und eine mit der Deckfähigkeit. Dann bring ich die beide zusammen, sodass ich sie mit UpdateLayeredWindow verwenden kann.</p>
<p>Das Problem ist, dass ich keine Ahnung habe, wie ich beide Bitmaps zusammenfügen kann. Und auch nicht, wie ich bei UpdateLayeredWindow vorgehen muss. Da gibt man einen Source-DC an. Muss ich einfach mit CreateCompatibleDC einen DC erstellen und mit SelectObject die Bitmap damit verknüpfen.</p>
<p>Ich würde mich freuen, wenn jemand ein kleines Beispiel hätte oder mir einen Denkansatz geben könnte. <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/201820/updatelayeredwindow-mit-bitmaps</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 22:36:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201820.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jan 2008 13:08:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to UpdateLayeredWindow mit Bitmaps on Fri, 04 Jan 2008 13:08:33 GMT]]></title><description><![CDATA[<p>Ich würde gerne eine Bitmap auf einem Fenster anzeigen. Dabei sollen einige Stellen der Bitmap transparent sein.</p>
<p>Also hab ich mir folgendes gedacht: Ich habe eine Bitmap mit den Farben und eine mit der Deckfähigkeit. Dann bring ich die beide zusammen, sodass ich sie mit UpdateLayeredWindow verwenden kann.</p>
<p>Das Problem ist, dass ich keine Ahnung habe, wie ich beide Bitmaps zusammenfügen kann. Und auch nicht, wie ich bei UpdateLayeredWindow vorgehen muss. Da gibt man einen Source-DC an. Muss ich einfach mit CreateCompatibleDC einen DC erstellen und mit SelectObject die Bitmap damit verknüpfen.</p>
<p>Ich würde mich freuen, wenn jemand ein kleines Beispiel hätte oder mir einen Denkansatz geben könnte. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1430600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430600</guid><dc:creator><![CDATA[ChristianK]]></dc:creator><pubDate>Fri, 04 Jan 2008 13:08:33 GMT</pubDate></item><item><title><![CDATA[Reply to UpdateLayeredWindow mit Bitmaps on Fri, 04 Jan 2008 19:13:39 GMT]]></title><description><![CDATA[<p>Schau dir mal TransparentBlt an. Dies sollte eigentlich genau das sein, was du suchst. Dies müsste man auch auf in einem virtuellen DC zusammen mit BitBlt kombinieren können.</p>
<p>Update:</p>
<p>Falls du einfach nur ein Bitmap mit teilweise transparenten Stellen auf ein Fenster legen willst, und das Fenster selber nicht transparent ist, sieht das ganze grob so aus:</p>
<pre><code>HANDLE				hBitmap;
BITMAP			       bitmap;
HDC				      hdc, hdcMem;
PAINTSTRUCT		      ps;

hdc    = BeginPaint(m_hwnd, &amp;ps);
hdcMem = CreateCompatibleDC (hdc);

hBitmap = handle des Bitmaps
GetObject(hBitmap, sizeof(BITMAP), &amp;bitmap);
SelectObject(hdcMem, hBitmap);

TransparentBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, bitmap.bmWidth, bitmap.bmHeight, (UINT) GetPixel(hdcMem, 0 ,0));

DeleteDC(hdcMem);
EndPaint(m_hwnd, &amp;ps);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1430768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430768</guid><dc:creator><![CDATA[AlexB]]></dc:creator><pubDate>Fri, 04 Jan 2008 19:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to UpdateLayeredWindow mit Bitmaps on Fri, 04 Jan 2008 19:52:27 GMT]]></title><description><![CDATA[<p>Danke, aber wenn ich das richtig verstanden habe, kann man bei TransparentBlt nur <em>eine</em> Farbe transparent machen. Ich brauche aber leider mehrere Abstufungen, deshalb auch die zweite Bitmap.</p>
<p>Man muss die doch irgendwie kombinieren können, sodass man eine HBITMAP mit 32-Bit Farbtiefe und Alphachannel erhält ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430791</guid><dc:creator><![CDATA[ChristianK]]></dc:creator><pubDate>Fri, 04 Jan 2008 19:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to UpdateLayeredWindow mit Bitmaps on Sat, 05 Jan 2008 02:01:53 GMT]]></title><description><![CDATA[<p>Sowas müsste mit AlphaBlend und BLENDFUNCTION gehen. Du müsstest erst mit BitBlt dein Basisbild in einen DC blitten und danach mit AlphaBlend das Bitmap mit der Deckfähigkeit darüberlegen. In BLENDFUNCTION muss dann AC_SRC_ALPHA gesetzt werden. Wie das mit den Bitmaps mit Alphachannel funktioniert, ist in der MSDN bei BLENDFUNCTION erklärt. Ausprobiert habe ich es jetzt nicht aber es klingt zumindest, als wäre dies eine Möglichkeit, so etwas hinzubekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430904</guid><dc:creator><![CDATA[AlexB]]></dc:creator><pubDate>Sat, 05 Jan 2008 02:01:53 GMT</pubDate></item></channel></rss>