<?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[Wann muss ich den Code zum Zeichnen einfügen??]]></title><description><![CDATA[<p>HI Leute</p>
<p>Ist wahrscheinlich ne blöde Frage aber ich finde keine Antwort.</p>
<p>Ich frage den Benutzer in einem Dialog wo er einen Text geschrieben haben möchte.<br />
Meine Frage ist nun wo ich die den Code zum Zeichnen im Programm platzieren muss.</p>
<p>P.S.: Ich habe den Code(&quot;CClientDC dc(this);....&quot;) jetzt nach dem &quot;dlg.DoModal();&quot; des Dialogs mit dem Benutzer definiert, aber dann kann man nur dort zeichnen wo das Dialogfeld das Hauptfenster nicht überdeckt hat.</p>
<p>Hoffe jemand kann mir das verständlich erklären!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/157899/wann-muss-ich-den-code-zum-zeichnen-einfügen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Jul 2026 06:35:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/157899.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Aug 2006 13:39:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 13:39:15 GMT]]></title><description><![CDATA[<p>HI Leute</p>
<p>Ist wahrscheinlich ne blöde Frage aber ich finde keine Antwort.</p>
<p>Ich frage den Benutzer in einem Dialog wo er einen Text geschrieben haben möchte.<br />
Meine Frage ist nun wo ich die den Code zum Zeichnen im Programm platzieren muss.</p>
<p>P.S.: Ich habe den Code(&quot;CClientDC dc(this);....&quot;) jetzt nach dem &quot;dlg.DoModal();&quot; des Dialogs mit dem Benutzer definiert, aber dann kann man nur dort zeichnen wo das Dialogfeld das Hauptfenster nicht überdeckt hat.</p>
<p>Hoffe jemand kann mir das verständlich erklären!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127637</guid><dc:creator><![CDATA[Plueschi]]></dc:creator><pubDate>Wed, 30 Aug 2006 13:39:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 14:15:22 GMT]]></title><description><![CDATA[<p>In einem SDI oder MDI macht man es normalerweise in der OnDraw-Methode und bei einem Dialog in der OnPaint, bzw. da fängt man die WM_PAINT Message ab.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127663</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:15:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 14:41:03 GMT]]></title><description><![CDATA[<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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /> <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="😕"
    /><br />
Die Eingaben die Der Benutzer macht sind aber alle Member meiner Dialog-Klasse und gehen dadurch verloren (weil das zeichnen ja nicht mehr gleich danach stattfindet)??<br />
Erste Frage: Wie kann ich die retten??</p>
<p>Zweite Frage: Wann wird die OnPaint Funktion aufgerufen und wie mache ich es das der Code der dort steht erst ausgeführt wird wenn der Benutzer meinen Dialog ausgefüllt hat und ihn mit OK beendet hat??</p>
<p>Weiß das das wahrscheinlich Basic ist aber ich find das in keinem meiner Bücher.</p>
<p>Danke schon im voraus Plueschi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127689</guid><dc:creator><![CDATA[Plueschi]]></dc:creator><pubDate>Wed, 30 Aug 2006 14:41:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 15:09:45 GMT]]></title><description><![CDATA[<p>Erste Frage: Du nimmst die Eingaben im Dialog als Members in der Dokument-Klasse auf.</p>
<p>Zweite Frage: Du erklärst die Ansicht für ungültig, wenn Du den Dialog beendet hast, wodurch Deine Ansicht neu gezeichnet wird.<br />
Innerhalb von OnPaint fragst Du ab, ob schon was sinnvolles im vorigen Dialog eingegeben wurde und zeichnest es an der gewünschten Stelle, falls ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127713</guid><dc:creator><![CDATA[log10]]></dc:creator><pubDate>Wed, 30 Aug 2006 15:09:45 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 15:22:49 GMT]]></title><description><![CDATA[<p>Erst mal Danke! <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>Die Antwort zur ersten frage habe ich verstanden.</p>
<p>Zur zweiten Antwort: Das heißt der OnPaint Funktion wir immer zu Beginn des Programms gestartet und dann immer wenn ich die aktuelle Ansicht für ungültig erkläre??<br />
Ich müsste dann sozusagen jedes Mal wenn der Benutzer meinen Dialog beendet hat ein &quot;Flag&quot; setzen das der Code in der OnPaint Funktion ausgeführt wird und das Flag dann nach Beendigung des Zeichenvorganges wieder zurücksetzen oder??</p>
<p>mfg Plueschi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127723</guid><dc:creator><![CDATA[Plueschi]]></dc:creator><pubDate>Wed, 30 Aug 2006 15:22:49 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Wed, 30 Aug 2006 15:28:47 GMT]]></title><description><![CDATA[<p>mit</p>
<pre><code>invalidate();
</code></pre>
<p>erklärt man den DC für ungültig und er wird neugezeichnet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1127730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1127730</guid><dc:creator><![CDATA[McSnoop]]></dc:creator><pubDate>Wed, 30 Aug 2006 15:28:47 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Thu, 31 Aug 2006 07:25:15 GMT]]></title><description><![CDATA[<p>Bei SDI/MDI Dokumenten solltest Du UpdateAllViews(NULL) verwenden. In der OnPaint-Methode auf keinen Fall das Flag zurücksetzen, da Du keine Kontrolle darüber hast, wann die Methode erneut aufgerufen wird (z.B. Verschieben des Fensters).</p>
<p>Nachtrag: OnPaint wird immer dann aufgerufen, wenn Dein Fenster eine WM_PAINT Nachricht empfängt. Dies kann völlig unterschiedliche Ursachen haben (Größe ändern,<br />
Überdeckung, Verschieben, ....).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128111</guid><dc:creator><![CDATA[Turing]]></dc:creator><pubDate>Thu, 31 Aug 2006 07:25:15 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Thu, 31 Aug 2006 09:34:00 GMT]]></title><description><![CDATA[<p>Ich habe mir das so gedacht:</p>
<p>Ich setze das Flag nach dem &quot;dlg.DoModal();&quot; des Benutzerdialogs und erkläre dann die Ansicht für ungültig.<br />
Dann müsste er ja in die OnPaint Methode springen dort den Zeichencode abarbeiten der da das Flag gesetzt ist &quot;freigegeben&quot; ist.<br />
Am Ende des Zeichnens wollte ich dann das Flag zurücksetzen.</p>
<p>Frage:</p>
<p>Geht das so??<br />
Wenn nicht warum nicht oder wie löst man das eleganter??</p>
<p>mfg Plueschi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128193</guid><dc:creator><![CDATA[Plueschi]]></dc:creator><pubDate>Thu, 31 Aug 2006 09:34:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Thu, 31 Aug 2006 11:43:51 GMT]]></title><description><![CDATA[<p>Hast Du es denn so schonmal ausprobiert?<br />
Es dürfte eigentlich nicht funktionieren, weil sobald das Fenster nochmal &quot;automatisch&quot; neu gezeichnet wird (z.B. minimieren maximieren), ist Dein Flag false und der Code zum Zeichnen wird nicht mehr ausgeführt. Bestimmt ist dies nicht das was Du willst. Besser wäre es, das Flag an anderer Stelle zurückzusetzen. Grundsätzlich sollte in OnPaint nichts manipuliert werden, d.h. keine Variablen manipulieren und wenn doch, dann vor Verlassen wieder in ursprünglichen Zustand bringen. Dies wird praktisch zum Beispiel durch Herstellen des ursprünglichen Kontexts, Stifte, ... durchgeführt und man sollte sich dran halten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128305</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128305</guid><dc:creator><![CDATA[Turing]]></dc:creator><pubDate>Thu, 31 Aug 2006 11:43:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Fri, 01 Sep 2006 05:53:40 GMT]]></title><description><![CDATA[<p>Denke du solltest mal sagen was du machen willst und wo du zeichen willst.<br />
Ist es z.B. ein Zeichenprogramm dann musst du sowieso immer Zeichnen was am Bildschirm erscheine soll.<br />
In den anderen Fällen eigentlich ja auch.<br />
WM_PAINT wird auch von Windows selbst aufgerufen wenn du z.B. deine Dilaog schließt und dieser gerade das Zeichenfenster überdeckt hat. Also immer wenn ein anderes Fenster den Zeichenbereich überdeckt dann wird WM_PAINT ausgelöst.<br />
Der Grafiktreiber kann dies sogar manchmal unvermutet machen. Habe ich oft wenn windows gerade startet.<br />
Da wird der Bildschirm aufgebaut um ihn dann wieder zu löschen und neue aufzubauen.<br />
Solche Dinge sollte man bei bestimmten Programm bedenken.<br />
Also wenn du schon was Zeichnen möchtest dann immer und nicht mit Flags oder ähnlichem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128792</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128792</guid><dc:creator><![CDATA[Unix-Tom]]></dc:creator><pubDate>Fri, 01 Sep 2006 05:53:40 GMT</pubDate></item><item><title><![CDATA[Reply to Wann muss ich den Code zum Zeichnen einfügen?? on Fri, 01 Sep 2006 11:43:31 GMT]]></title><description><![CDATA[<p>HI</p>
<p>Ich habe ein SDI Programm zu schreiben begonnen um mal zu probieren was ich mir aus diversen Büchern angelesen habe.<br />
Ein Funktion meines Programmes soll sein das der Benutzer einen Dialog aufrufen kann in dem er die Position, Formatierung und den Text selbst bestimmen kann den das Programmm dann ausgibt.<br />
Wie kann man das am elegantesten machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1128989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1128989</guid><dc:creator><![CDATA[Plueschi]]></dc:creator><pubDate>Fri, 01 Sep 2006 11:43:31 GMT</pubDate></item></channel></rss>