<?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[Flackernde Childfenster, kann das mit doublebuffer behoben werden?]]></title><description><![CDATA[<p>Ok ich habe in meiner Anwendung 5 gedockte Childfenster im Hauptfenster. Diese Fenster sind erstellt im Treeview und im Listview(Report) Style. Ausserdem verfügt mein Hauptfenster über eine Toolbar. Beim Re-sizen flackerten diese Fenster extrem. Dieses Flackern habe ich jetzt teilweise behoben indem ich für das Hauptfenster den Code folgendermassen geändert habe</p>
<pre><code class="language-cpp">WNDCLASSEX wndclass;
voerher: wndclass.style = CS_HREDRAW | CS_VREDRAW;
nachher: wndclass.style = 0;
</code></pre>
<p>Das Hauptfenster wurde mit &quot;WS_CLIPCHILDREN&quot; erstellt. Das Flackern ist fast weg. Es tritt beim Re-sizen nur noch in der Toolbar und in nicht gefüllten Listview Fenstern auf. Da die Listviewfenster im Reportstyle erstellt sind und Columns besitzen sind sie daher nicht völlig leer und das flackern wird bei der Schrift der Columns sichtbar. Sind diese Fenster jewdoch mit Items gefült flackert dort nichts. Die Toolbar flackert nach wie vor. Ich hab irgendwo gelesen, daß das mit dem Doublebuffer und Childfenster nicht so funktioniert. Wer kann helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/201775/flackernde-childfenster-kann-das-mit-doublebuffer-behoben-werden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 01:22:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/201775.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Jan 2008 22:28:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Thu, 03 Jan 2008 22:28:00 GMT]]></title><description><![CDATA[<p>Ok ich habe in meiner Anwendung 5 gedockte Childfenster im Hauptfenster. Diese Fenster sind erstellt im Treeview und im Listview(Report) Style. Ausserdem verfügt mein Hauptfenster über eine Toolbar. Beim Re-sizen flackerten diese Fenster extrem. Dieses Flackern habe ich jetzt teilweise behoben indem ich für das Hauptfenster den Code folgendermassen geändert habe</p>
<pre><code class="language-cpp">WNDCLASSEX wndclass;
voerher: wndclass.style = CS_HREDRAW | CS_VREDRAW;
nachher: wndclass.style = 0;
</code></pre>
<p>Das Hauptfenster wurde mit &quot;WS_CLIPCHILDREN&quot; erstellt. Das Flackern ist fast weg. Es tritt beim Re-sizen nur noch in der Toolbar und in nicht gefüllten Listview Fenstern auf. Da die Listviewfenster im Reportstyle erstellt sind und Columns besitzen sind sie daher nicht völlig leer und das flackern wird bei der Schrift der Columns sichtbar. Sind diese Fenster jewdoch mit Items gefült flackert dort nichts. Die Toolbar flackert nach wie vor. Ich hab irgendwo gelesen, daß das mit dem Doublebuffer und Childfenster nicht so funktioniert. Wer kann helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430321</guid><dc:creator><![CDATA[JensS.]]></dc:creator><pubDate>Thu, 03 Jan 2008 22:28:00 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Thu, 03 Jan 2008 23:23:01 GMT]]></title><description><![CDATA[<p>Probier mal obs was hilft beim Erzeugen deines Hauptfensters WS_EX_COMPOSITED mit anzugeben bei CreateWindowEx()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430340</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Thu, 03 Jan 2008 23:23:01 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Fri, 04 Jan 2008 07:48:07 GMT]]></title><description><![CDATA[<p>Wie machst Du das Resizen? Selber manuell mit MoveWindow/SetWindowPos?</p>
<p>Versuch es mal mit BeginDeferWindowPos, DeferWindowPos, EndDeferWindowPos...</p>
<p>Doublebuffering kann man in bestehende Fenster nicht integrieren. Dabei zerstörst Du deren Paint und Redraw Mechanismen. Das geht nur für eigene Fenster.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430395</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 04 Jan 2008 07:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Fri, 04 Jan 2008 09:28:38 GMT]]></title><description><![CDATA[<p>geeky schrieb:</p>
<blockquote>
<p>Probier mal obs was hilft beim Erzeugen deines Hauptfensters WS_EX_COMPOSITED mit anzugeben bei CreateWindowEx()</p>
</blockquote>
<p>Hat leider nix gebracht, ausser daß die Childfenster extrem flackerten, wenn ich mit den Mauscursor drüber bewege.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a><br />
naja ich fange WM_SIZE ab und rufe 2 Funktionen auf, die eine berechnet mir anhand der momentanen Größe des Hauptfensters die jeweiligen neuen Koordinaten der einzelnen Childfenster die zweite bringt per &quot;MoveWindow(....,TRUE);&quot; die Fenster an ihre Position. Hmm mit BeginDeferWindowPos etc. habe ich noch nicht gearbeitet, ich werde mir das gleich mal anschauen, Danke für den Tip.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1430439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1430439</guid><dc:creator><![CDATA[JensS.]]></dc:creator><pubDate>Fri, 04 Jan 2008 09:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Sat, 05 Jan 2008 18:04:23 GMT]]></title><description><![CDATA[<p>So ich hab mir mal einen Code geschrieben als Denkanstoß diente mir ein Beispiel aus einem msdn blog, leider ändert nun keines der Fenster mehr seine Größe. Hat einer eine Idee was ich falsch mache? Hier der Code:</p>
<pre><code class="language-cpp">void Resize_ChildWindows(void){

	HDWP		MultiWnd;
	RECT		rcl;

	MultiWnd = BeginDeferWindowPos(8);

	SendMessage(Wnd_StatusBar, SB_SETPARTS, (WPARAM)4, (LPARAM)dim.sbar_xpos);
	MultiWnd = DeferWindowPos(Wnd_StatusBar, MultiWnd, NULL, dim.xpos_sbar, dim.ypos_sbar, dim.xwidth_sbar, dim.yheight_sbar, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_TabControl, MultiWnd, NULL, XPOS_TABCONT, dim.ypos_tabcontrol, XWIDTH_TABCONT, dim.yheight_tabcontrol, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_Child1, MultiWnd, NULL, dim.xpos_child1, dim.ypos_child1, dim.xwidth_child1, dim.yheight_child1, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_Child2, MultiWnd, NULL, dim.xpos_child2, dim.ypos_child2, dim.xwidth_child2, dim.yheight_child2, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_Child3, MultiWnd, NULL, dim.xpos_child3, dim.ypos_child3, dim.xwidth_child3, dim.yheight_child3, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_Child4, MultiWnd, NULL, dim.xpos_child4, dim.ypos_child4, dim.xwidth_child4, dim.yheight_child4, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_Child5, MultiWnd, NULL, dim.xpos_child5, dim.ypos_child5, dim.xwidth_child5, dim.yheight_child5, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	MultiWnd = DeferWindowPos(Wnd_ToolBar, MultiWnd, NULL, -1, -1, dim.xwidth_tbar, dim.yheight_tbar, SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOACTIVATE);
	EndDeferWindowPos(MultiWnd);
	GetClientRect(Wnd_Main, &amp;rcl);
	InvalidateRect(Wnd_Main, &amp;rcl, TRUE);
}
</code></pre>
<p>die Werte für die Coordinaten sind auf jedenfall uptodate, da meine alte MoveWindow-Funktion damit noch einwandfrei arbeitet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431308</guid><dc:creator><![CDATA[JensS.]]></dc:creator><pubDate>Sat, 05 Jan 2008 18:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Sat, 05 Jan 2008 18:14:48 GMT]]></title><description><![CDATA[<p>Guck nochmal nach was die ersten beiden Parameter von DeferWindowPos () sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431323</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431323</guid><dc:creator><![CDATA[DeferW.]]></dc:creator><pubDate>Sat, 05 Jan 2008 18:14:48 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Sat, 05 Jan 2008 18:50:13 GMT]]></title><description><![CDATA[<p>Danke Kollege, manchmal sieht man den Wald vor lauter Bäumen nicht. Das Flackern ist jetzt schon merklich besser, fast akzeptabel. Leider ist da nach wie vor das Problem mit den nicht gefüllten Listviewfenstern. Wenn kein Item drin ist flackern die Columns, sobald ein Item drin ist flackert da nichts mehr. Hat da jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431359</guid><dc:creator><![CDATA[JensS.]]></dc:creator><pubDate>Sat, 05 Jan 2008 18:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Sun, 06 Jan 2008 13:12:31 GMT]]></title><description><![CDATA[<p>Keiner eine Ahnung? Btw was mir so aufgefallen ist, so bekannte Programme wie z.B. Total Commander oder WinSPC da flackern ja die einzelnen Fenster wie wild beim resizen. Jedoch eine Excel Tabelle läßt sich smooth resizen. Sind die Programmierer einfach zu faul oder wissen nicht wie's geht oder ist es denen egal? Also bei einer kommerziellen Software störrt mich das schon gewaltig. So gesehen kann ich mit meiner Anwendung zufrieden sein, da liegen ja Welten im Vergleich mit ersteren und weit weg von einem Excel Ergebnis bin ich auch nicht. Hab halt gehoft ich bekomms genausogut hin wie MS :), muss ich wohl noch etwas üben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431756</guid><dc:creator><![CDATA[JensS.]]></dc:creator><pubDate>Sun, 06 Jan 2008 13:12:31 GMT</pubDate></item><item><title><![CDATA[Reply to Flackernde Childfenster, kann das mit doublebuffer behoben werden? on Sun, 06 Jan 2008 15:37:36 GMT]]></title><description><![CDATA[<p>Das Problem sind eher die Controls, die Du verwendest und evtl. was Deine Client Area invalidiert. Und da bist Du vermutlich selber schuld.</p>
<p>Alle Deine gedockten Fenster liegen in der Client Area, die invalidierst Du am Ende komplett und erzwingst ein Neuzeichnen.<br />
Alleine das ist schon evtl. der Grund. Warum machst Du das überhaupt?<br />
Zudem wird evtl auch noch zusätzlich ein Neuzeichnen durch die Klassenflags ausgelöst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1431871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1431871</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 06 Jan 2008 15:37:36 GMT</pubDate></item></channel></rss>