<?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[Gdiplus: Es wird nicht gezeichnet bei: Maximieren, oder wenn überdeckendes Fenster minimiert wird]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe einen Dialog mit CreateDialogParam() erstellt. Auf diesem befindet sich ein Static Control.<br />
Nun zeichne ich bei WM_PAINT mit Gdiplus in diesen Control.</p>
<pre><code class="language-cpp">case WM_PAINT:
    {
        if(inited)
        {
            RenderSmallPicture();
            return false;
        }
    }

...

// RenderSmallPicture

Gdiplus::Color clearColor(255, 224, 255, 227);

if(smallPictureCanvas-&gt;Clear(clearColor) == Gdiplus::Ok)
    Beep(500, 100);
</code></pre>
<p>Es funktioniert beim Start, und wenn man das Fenster (und auch das Static Control) über den Bildschirmrand hinaus- und wieder hineinbewegt, aber es gibt zwei Ausnahmen:</p>
<p>Wenn das Fenster maximiert wird, wird nicht ins Control gezeichnet.<br />
Und wenn über meinem Fenster ein anderes liegt, und ich dieses minimiere, wird auch nicht gezeichnet!</p>
<p>Wenn ein überdeckendes Fenster über dem Static Control hin- und weggezogen wird, wird aber gezeichnet.</p>
<p>In jedem Fall ertönt ein Beep!</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245990/gdiplus-es-wird-nicht-gezeichnet-bei-maximieren-oder-wenn-überdeckendes-fenster-minimiert-wird</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Apr 2026 18:42:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245990.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Jul 2009 16:24:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Gdiplus: Es wird nicht gezeichnet bei: Maximieren, oder wenn überdeckendes Fenster minimiert wird on Tue, 21 Jul 2009 16:24:39 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich habe einen Dialog mit CreateDialogParam() erstellt. Auf diesem befindet sich ein Static Control.<br />
Nun zeichne ich bei WM_PAINT mit Gdiplus in diesen Control.</p>
<pre><code class="language-cpp">case WM_PAINT:
    {
        if(inited)
        {
            RenderSmallPicture();
            return false;
        }
    }

...

// RenderSmallPicture

Gdiplus::Color clearColor(255, 224, 255, 227);

if(smallPictureCanvas-&gt;Clear(clearColor) == Gdiplus::Ok)
    Beep(500, 100);
</code></pre>
<p>Es funktioniert beim Start, und wenn man das Fenster (und auch das Static Control) über den Bildschirmrand hinaus- und wieder hineinbewegt, aber es gibt zwei Ausnahmen:</p>
<p>Wenn das Fenster maximiert wird, wird nicht ins Control gezeichnet.<br />
Und wenn über meinem Fenster ein anderes liegt, und ich dieses minimiere, wird auch nicht gezeichnet!</p>
<p>Wenn ein überdeckendes Fenster über dem Static Control hin- und weggezogen wird, wird aber gezeichnet.</p>
<p>In jedem Fall ertönt ein Beep!</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1747096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1747096</guid><dc:creator><![CDATA[Kranz]]></dc:creator><pubDate>Tue, 21 Jul 2009 16:24:39 GMT</pubDate></item><item><title><![CDATA[Reply to Gdiplus: Es wird nicht gezeichnet bei: Maximieren, oder wenn überdeckendes Fenster minimiert wird on Wed, 22 Jul 2009 14:11:26 GMT]]></title><description><![CDATA[<p>Ich glaub du musst da etwas genauer sein, wenn ein Fenster deinen Dialog kurzeitig überdeckt ist er danach leer? oder nur der Inhalt des Controls?</p>
<p>einfachste Lösung: wahrscheinlich hast du nen fehler bei der definition gemacht, nimm einfach einen modalen doalog, wenns dir unbedingt darum geht, dass er moduslos ist, musst du ihn auch so behandeln...</p>
<p>ansonsten: das größenproblem:</p>
<pre><code>case WM_SIZE:
        InvalidateRect(hDialog, NULL, TRUE);
</code></pre>
<p>müsste eigentlich aber auch so funktionieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1747649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1747649</guid><dc:creator><![CDATA[Ast-vom-Baum]]></dc:creator><pubDate>Wed, 22 Jul 2009 14:11:26 GMT</pubDate></item><item><title><![CDATA[Reply to Gdiplus: Es wird nicht gezeichnet bei: Maximieren, oder wenn überdeckendes Fenster minimiert wird on Wed, 22 Jul 2009 14:24:38 GMT]]></title><description><![CDATA[<p>einfach bei allen möglichen wind00f messages die iwas mit zeichnen oder verschieben vergrößern etc zutun haben solange InvalidateRects reinballern bisses funzt <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>
<p>ゆっくりしていてね</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1747667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1747667</guid><dc:creator><![CDATA[r4mb0]]></dc:creator><pubDate>Wed, 22 Jul 2009 14:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to Gdiplus: Es wird nicht gezeichnet bei: Maximieren, oder wenn überdeckendes Fenster minimiert wird on Wed, 22 Jul 2009 17:57:31 GMT]]></title><description><![CDATA[<p>Ich rufe RenderSmallPicture() nun einfach in der message loop auf, dann gibts keine Probleme. Ist sowieso nur ein Programm für mich. Trotzdem wüsste ich gerne, wie man es besser macht.</p>
<p>&quot;Gdiplus::Graphics smallPictureCanvas&quot; hat den DC eines static controls meines Fensters.</p>
<p>Es wird reingezeichnet, also die client area des static controls wird grünlich gezeichnet. So soll es auch sein.</p>
<p>Ist nun irgendein (fremdes) Fenster über dem static control und wird wieder weggeschoben, wird ins static control neu gezeichnet. Passt.</p>
<p>Ist nun irgendein (fremdes) Fenster über dem static control und wird nun aber minimiert, bleibt das static control grau, es wird also nicht gezeichnet.</p>
<p>Mit WM_SIZE dürfte das nicht gelöst sein.</p>
<p>Und wenn ich mein Fenster mit dem static control minimiere und anschließend wieder maximiere, bleibt das static control auch grau, es wird also wieder nicht gezeichnet.</p>
<p>Da könnte WM_SIZE helfen, kann ich ja noch testen, wenn das vorige Problem auch beseitig werden kann.</p>
<p>Und es ist das Hauptfenster des Programmes, also muss es ein modeless dialog sein.</p>
<p>In den Fällen, wo das static control grau bleibt, ertönt aber, wie schon gesagt, der beep.</p>
<p>@r4mb0<br />
klar <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/1747811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1747811</guid><dc:creator><![CDATA[Kranz]]></dc:creator><pubDate>Wed, 22 Jul 2009 17:57:31 GMT</pubDate></item></channel></rss>