<?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[SetBkMode]]></title><description><![CDATA[<p>Hi,</p>
<p>Warum werden die Child-Fenster, die ich mit CREATECHILDWINDOW erstellt habe, nicht transparent?!</p>
<pre><code class="language-cpp">#define CREATECHILDWINDOW(a, b, c, d, e, f, g, h, i, j, k, l, m) {a = CreateWindowEx(b, c, d, e, f, g, h, i, j, k, l, m); if(!a) {ERROR_WINAPI(&quot;!#a&quot;, -1);} if(!SetBkMode(GetDC(a), TRANSPARENT)) {ERROR_WINAPI(&quot;!SetBkMode&quot;, -1);}}
</code></pre>
<p>Danke,</p>
<p>Daniel</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/82742/setbkmode</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 12:23:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/82742.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 13 Aug 2004 14:26:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 14:26:54 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Warum werden die Child-Fenster, die ich mit CREATECHILDWINDOW erstellt habe, nicht transparent?!</p>
<pre><code class="language-cpp">#define CREATECHILDWINDOW(a, b, c, d, e, f, g, h, i, j, k, l, m) {a = CreateWindowEx(b, c, d, e, f, g, h, i, j, k, l, m); if(!a) {ERROR_WINAPI(&quot;!#a&quot;, -1);} if(!SetBkMode(GetDC(a), TRANSPARENT)) {ERROR_WINAPI(&quot;!SetBkMode&quot;, -1);}}
</code></pre>
<p>Danke,</p>
<p>Daniel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582106</guid><dc:creator><![CDATA[Das_gast]]></dc:creator><pubDate>Fri, 13 Aug 2004 14:26:54 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 14:28:32 GMT]]></title><description><![CDATA[<p>ROFL. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/582108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582108</guid><dc:creator><![CDATA[^^]]></dc:creator><pubDate>Fri, 13 Aug 2004 14:28:32 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 15:34:01 GMT]]></title><description><![CDATA[<p>Hey, das war eine ernst gemeinte Frage eine <strong>Anfängers</strong>. Ich weiß, dass das ganze mit #define nicht toll ist, aber 30mal das Gleiche zu schreiben ist auch nicht besser.</p>
<p>Also, was habe ich falsch gemacht???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582163</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Fri, 13 Aug 2004 15:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 15:44:41 GMT]]></title><description><![CDATA[<p>Sorry, aber dieses define ist wirklich Blödsinn. Für soetwas nimmt man, wenn überhaupt, inline-Funktionen. Aber kein define.</p>
<p>Zum Code: Du rufst GetDC() auf. Die Doku sagt zu GetDC:</p>
<blockquote>
<p>After painting with a common DC, the ReleaseDC function must be called to release the DC.</p>
</blockquote>
<p>Da fehlt also schonmal ein ReleaseDC()-Aufruf.</p>
<p>Prinzipiell liefert GetDC() aber jedesmal einen anderen DC, es sei denn die Fensterklasse enthält das Flag CS_OWNDC. Dein Algorithmus funktioniert nur, wenn das Flag CS_OWNDC gesetzt ist, ansonsten änderst du nur einen temporären DC.<br />
Wenn das Flag CS_OWNDC gesetzt ist, ist ein ReleaseDC() aber wiederum überflüssig.</p>
<p>Mach aus dem Makro erstmal eine inline-Funktion und poste, wie du sie aufrufst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582169</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 15:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 16:46:18 GMT]]></title><description><![CDATA[<p>man kann sowas wrappen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/582203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582203</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 13 Aug 2004 16:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 17:59:41 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich mach das jetzt mal so:</p>
<pre><code class="language-cpp">int CreateChildWindow(HWND* pOut, DWORD dwExStyle, std::string sClassName, std::string sWindowName, DWORD dwStyle, int X, int Y, int iWidth, int iHeight, HWND hParent, HMENU hMenu, HINSTANCE hInstance)
{
	HDC hDc;

	*pOut = CreateWindowEx(dwExStyle, sClassName.c_str(), sWindowName.c_str(), dwStyle | WS_CHILD, X, Y, iWidth, iHeight, hParent, hMenu, hInstance, NULL);

	if(!*pOut)
		ERROR_WINAPI(&quot;!#a&quot;, -1);

	hDc=GetDC(*pOut);
	if(!hDc)
		ERROR_WINAPI(&quot;!hDc&quot;, -1);

	if(!SetBkMode(GetDC(*pOut), TRANSPARENT))
		ERROR_WINAPI(&quot;!SetBkMode&quot;, -1);

	if(!ReleaseDC(*pOut, hDc))
		ERROR_MESSAGE(&quot;!ReleaseDC&quot;, -1);

	return 0;
};
</code></pre>
<p>Aufgerufen wird so z.B. in der WindowProc bei WM_CREATE...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5202">@otze</a>: Was ist wrappen?! Wenns Subclassing ist, dann vergiss es. Subclassing ist mir zu aufwendig...</p>
<p>Ciao,</p>
<p>Daniel</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582250</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582250</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Fri, 13 Aug 2004 17:59:41 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 18:30:27 GMT]]></title><description><![CDATA[<p>wrappen ist kein subclassing wrappen ist einfach...wrappen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/582268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582268</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 13 Aug 2004 18:30:27 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 18:45:35 GMT]]></title><description><![CDATA[<p>Kenn ich nicht. Mach mal ein Beispiel!!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582279</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Fri, 13 Aug 2004 18:45:35 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 19:25:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/15778">@Gast</a>: Bitte lies meinen ersten Beitrag nochmal ganz genau durch. Besonders die Abhängigkeiten zwischen CS_OWNDC, GetDC() und ReleaseDC(). <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>btw: Deine Funktion CreateChildWindow() sollte ein HWND zurückgeben, keinen int. Und lass diesen Parameter pOut weg, den brauchst du nicht (dafür gibt es return).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582306</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:25:22 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 19:26:47 GMT]]></title><description><![CDATA[<p>p.s.: std::string könnte sich als ungünstige Wahl herausstellen, wenn du dein Programm mit Unicode-Unterstützung kompilieren möchtest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582308</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Fri, 13 Aug 2004 19:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Fri, 13 Aug 2004 21:42:13 GMT]]></title><description><![CDATA[<p>Jetzt habe ich es verstanden. Also muss ich doch subclassing, da ich auf die WNDCLASS kein Zugriff habe (ich nehme da &quot;STATIC&quot;).</p>
<p>Danke nochmals,</p>
<p>Gast</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582389</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Fri, 13 Aug 2004 21:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Sat, 14 Aug 2004 09:06:42 GMT]]></title><description><![CDATA[<p>Nachtrag: Was ist denn jetzt eigentlich wrappen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582500</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582500</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Sat, 14 Aug 2004 09:06:42 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Sat, 14 Aug 2004 09:17:15 GMT]]></title><description><![CDATA[<p>Superclassing <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Steht in der MSDN wie es geht.</p>
<p>Eventuell reicht dir auch SetClassLong/SetClassLongPtr, aber das ändert dann glaube ich die ganzen Static-Fensterklasse im ganzen Prozess.</p>
<p>Wrappen: Wenn man eine Klasse in C++ dafür baut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582501</guid><dc:creator><![CDATA[confustrator]]></dc:creator><pubDate>Sat, 14 Aug 2004 09:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Sat, 14 Aug 2004 14:19:49 GMT]]></title><description><![CDATA[<blockquote>
<p>p.s.: std::string könnte sich als ungünstige Wahl herausstellen, wenn du dein Programm mit Unicode-Unterstützung kompilieren möchtest.</p>
</blockquote>
<p>Ja da hat er recht. Schreib lieber ein:</p>
<pre><code class="language-cpp">typedef std::basic_string&lt;TCHAR&gt; tstring;
</code></pre>
<p>unter deine Header und dann benutz tstring anstatt von string. tstring passt sich automatisch an wenn du mit Unicode compilierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582682</guid><dc:creator><![CDATA[***]]></dc:creator><pubDate>Sat, 14 Aug 2004 14:19:49 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Sat, 14 Aug 2004 14:26:49 GMT]]></title><description><![CDATA[<p>Aha, das wusste ich noch nicht. Eine letzte Frage: Wie kann ich den Innenteil eines Static-Grayframes transparent machen?</p>
<p>Danke,</p>
<p>&quot;Das Gast&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/582686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/582686</guid><dc:creator><![CDATA[Das Gast]]></dc:creator><pubDate>Sat, 14 Aug 2004 14:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Sun, 15 Aug 2004 09:57:14 GMT]]></title><description><![CDATA[<p>Suchst du das: <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39366" rel="nofollow">TRANSPARENTE Statics, so geht's!</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/583062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583062</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Sun, 15 Aug 2004 09:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to SetBkMode on Mon, 16 Aug 2004 13:56:28 GMT]]></title><description><![CDATA[<p>Hab ich schon gesucht (und gefunden), funzt aber trotzdem nicht.</p>
<p>Ich erstelle mein Static, subclasse es und bei der WM_PAINT-Message mach ich InvalidateRect(Parentwindow, NULL, TRUE) und schreibe schön bei WM_CTLCOLORSTATIC (in der Wndproc des Parents) das rein, was in dem schönen Thread von Delta steht, aber Leider funtz es wiegesgt nicht. Das Static wird zwar transparent, aber es zeigt leider nicht das Parentwindow, sondern das, was hinter dem Parentwindow ist, bzw, die Reste von dem, was da war, wenn das Child-Static-Window erstellt wurde, an. Ich kann das nicht besser beschreiben, aber auf jeden fall ist es nur Müll...</p>
<p>Weiß nicht jemand rat?</p>
<p>Danke,</p>
<p>&quot;Das_Gast&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/583801</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/583801</guid><dc:creator><![CDATA[Das_Gast]]></dc:creator><pubDate>Mon, 16 Aug 2004 13:56:28 GMT</pubDate></item></channel></rss>