<?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[Dialog Refresh 2]]></title><description><![CDATA[<p>Hi,</p>
<p>wie ja schon mal im Tread<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-168627.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-168627.html</a><br />
deutlich geworden ist habe ich si meine Problehme mit dem Refreshen meines Dialogs.</p>
<p>ich habe mir nun gedacht ich lege mir einen zwischenspeicher an für den inhalt des Static Text. den vergleich ob der text der gesetzt wird neu ist hab ich den vollgenden code erstellt, die Funktion ist ja eindeutig denk ich mal, wenn der inhalt der beiden var´s nicht gleich ist dann den neuen inhalt in den zwischenspeicher und neuzeichnen.</p>
<pre><code class="language-cpp">// dieser bereich wird mit Timer gesteuert 1 mal pro Sek. aufgerufen
// der inhalt von ausgabe wir vorher erzeugt.

m_Ctiteltext.SetWindowText(ausgabe);

if ( strcmp (titelalt,ausgabe) != 0)
{
         titelalt = ausgabe;
	Invalidate();
}
</code></pre>
<p>Was für mich dabei nicht zu erklähren ist, das ganze Funktioniert genau ein mal.<br />
Beim zweiten durchlauf bei dem er feststellt das die inhalte nicht gleich sind, wird zwar der inhalt der if durchlaufen, aber das Invalidate hat keinerlei wirkung. Das es so ist sehe ich daran das ich mir zum test &quot;titelalt&quot; und &quot;ausgabe&quot; im dialog ausgeben lasse, wobei man eine gewisse verzögerung bei der übernahme festellen kann.</p>
<p>ich habe alles mögliche ausprobiert, egal ob UpdateWindow oder sonstige möglichkeiten mein Dialog wird nicht neu gezeichnet.</p>
<p>dann habe ich mich noch mit dem Refresh einzelner bereiche beschäftigt, also nen RECT etc pp erzeugt und ein Invalidate das Resultat ist imemr das gleiche. Nämlich keins, kann mir den keiner der alten hasen hier sagen warum mein Invalidate nicht ordnungsgemäss Funktioniert <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/169174/dialog-refresh-2</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 14:44:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/169174.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 Jan 2007 20:07:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialog Refresh 2 on Tue, 02 Jan 2007 20:07:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wie ja schon mal im Tread<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-168627.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-168627.html</a><br />
deutlich geworden ist habe ich si meine Problehme mit dem Refreshen meines Dialogs.</p>
<p>ich habe mir nun gedacht ich lege mir einen zwischenspeicher an für den inhalt des Static Text. den vergleich ob der text der gesetzt wird neu ist hab ich den vollgenden code erstellt, die Funktion ist ja eindeutig denk ich mal, wenn der inhalt der beiden var´s nicht gleich ist dann den neuen inhalt in den zwischenspeicher und neuzeichnen.</p>
<pre><code class="language-cpp">// dieser bereich wird mit Timer gesteuert 1 mal pro Sek. aufgerufen
// der inhalt von ausgabe wir vorher erzeugt.

m_Ctiteltext.SetWindowText(ausgabe);

if ( strcmp (titelalt,ausgabe) != 0)
{
         titelalt = ausgabe;
	Invalidate();
}
</code></pre>
<p>Was für mich dabei nicht zu erklähren ist, das ganze Funktioniert genau ein mal.<br />
Beim zweiten durchlauf bei dem er feststellt das die inhalte nicht gleich sind, wird zwar der inhalt der if durchlaufen, aber das Invalidate hat keinerlei wirkung. Das es so ist sehe ich daran das ich mir zum test &quot;titelalt&quot; und &quot;ausgabe&quot; im dialog ausgeben lasse, wobei man eine gewisse verzögerung bei der übernahme festellen kann.</p>
<p>ich habe alles mögliche ausprobiert, egal ob UpdateWindow oder sonstige möglichkeiten mein Dialog wird nicht neu gezeichnet.</p>
<p>dann habe ich mich noch mit dem Refresh einzelner bereiche beschäftigt, also nen RECT etc pp erzeugt und ein Invalidate das Resultat ist imemr das gleiche. Nämlich keins, kann mir den keiner der alten hasen hier sagen warum mein Invalidate nicht ordnungsgemäss Funktioniert <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/1201437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1201437</guid><dc:creator><![CDATA[fmotto]]></dc:creator><pubDate>Tue, 02 Jan 2007 20:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Wed, 03 Jan 2007 04:30:25 GMT]]></title><description><![CDATA[<p>so ich hab jetzt so lange gefummelt bis ich was Funktionierendes gefunden habe.</p>
<pre><code class="language-cpp">CRect Ctext3Rect;
	CWnd *ptext3Wnd = GetDlgItem(IDC_STATIC3);
         ptext3Wnd-&gt;GetWindowRect(Ctext3Rect);
	ScreenToClient(Ctext3Rect);
         InvalidateRect(Ctext3Rect, TRUE);
	UpdateWindow();
</code></pre>
<p>an die stelle an der ich vorher das Invalidate hatte hab ich diesen code als ersatz stehen.</p>
<p>Für die unter euch die es nicht wissen was das macht ne erklährung.<br />
ich hole mir die koordinaten des CStatic welches sich verändert hat und führe auf diesen Bereich ein Refresh aus.<br />
Der aufwand loht sich für mich in diesem fall, es wird nur der bereich refresht der sich verändert hat, das heist das wilde geflacker wie ich es schon im ersten Beitrag beschrieben habe ist damit vergangenheit.</p>
<p>jetzt Flackert nix mehr selbst wennich alle 30 ms nen refesh mache (was es ja nich braucht, habs aber mal getestet <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>Und trotz der geringen Teilnahme an meinem Beitrag ein Lob an die Betreiber und Teilnehmer des Forum, grade der FAQ Bereich ist für einen Anfänger sehr hilfreich <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/1201548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1201548</guid><dc:creator><![CDATA[fmotto]]></dc:creator><pubDate>Wed, 03 Jan 2007 04:30:25 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Wed, 03 Jan 2007 07:48:47 GMT]]></title><description><![CDATA[<p>Das Invaliadte ist nach meinem Wissen unnötig. Es genügt den SetWndowtext auszuführen und anschließend UpdateWindow auszuführen.</p>
<p>Dein Problem ist, dass Du keine nachrichtenschleife hast, die erst dazu führt, dass Fenster Ihre ausstehenden WM_PAINT Nachrichten erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1201577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1201577</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 03 Jan 2007 07:48:47 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Wed, 03 Jan 2007 14:14:10 GMT]]></title><description><![CDATA[<p>hmmm da frag ichmich was da wohl fehlen könnte <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>
<pre><code class="language-cpp">afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnDraw(CDC* dc);
</code></pre>
<p>braucht man mehr als diese fürs zeichnen <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 />
Im OnEraseBkgnd habe ichnur ein return TRUE.<br />
ich denk mal das Problehm wird eher in der OnPaint sitzen, da ich dort meinen Background zeichne ist das CDialog::OnPaint(); auskommentiert.</p>
<p>Naja das übertagen des Textes und ein UpdateWindow haben ja nichts mehr gemacht, genauso wehnig hat das Invalidate Funktioniert.<br />
Jetzt wo ich ihm mitteile das sich in dem Bereich etwas verändert hat zeichnet er es ja neu. Ich weiss es ja noch nicht aber ich habe das einfach für das notwendige übel gehalten wenn man einen Bitmaphintergrund hat und alle objekte darauf Transparent dargestellt werden. <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>Ich denk mal wenn ich mir den source in einige rzeit noch mal ansehe wird mir eh schlecht <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/1201949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1201949</guid><dc:creator><![CDATA[fmotto]]></dc:creator><pubDate>Wed, 03 Jan 2007 14:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Thu, 04 Jan 2007 09:43:00 GMT]]></title><description><![CDATA[<p>Zeig mal ein paar Teile Deiner OnPaint Funktion. Gerade den Anfang.<br />
Onraw kannst Du wegschmeissen, die benötigt man nur in Views.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1202475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1202475</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 04 Jan 2007 09:43:00 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Thu, 04 Jan 2007 21:41:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if (IsIconic())
	{
	... hab ich mal entferntis ja nur das icon zeichnen drin ....
         }
	else
	{
		CPaintDC dc( this );
		CBitmap bmp, *poldbmp;
		CDC memdc;
		bmp.LoadBitmap( IDB_BITMAP1 );
		memdc.CreateCompatibleDC( &amp;dc );
		poldbmp = memdc.SelectObject( &amp;bmp );
		dc.BitBlt( 0, 0, 563, 237, &amp;memdc, 0, 0, SRCCOPY );
		memdc.SelectObject( poldbmp );
		//CDialog::OnPaint();
	}
}
</code></pre>
<p>das is auch schon alles, dann noch in erasebkng nen return True damits nich flackert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203106</guid><dc:creator><![CDATA[fmotto]]></dc:creator><pubDate>Thu, 04 Jan 2007 21:41:46 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Fri, 05 Jan 2007 07:21:48 GMT]]></title><description><![CDATA[<p>Das ist ja OK. Ich bleibe dabei. Wenn Du in ein Control einen neuen Wert setzt mit SetWindowText und anschließend UpdateWindow ausführst genügt das!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203258</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 05 Jan 2007 07:21:48 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog Refresh 2 on Fri, 05 Jan 2007 17:20:13 GMT]]></title><description><![CDATA[<p>naja is ja schön das du dabei bleibst, aber es geht nun mal nicht.<br />
es nutzt mnir nichts wennich im laufe der zeit 10 verschiedene texte übereinander stehen habe, weil er nicht refresht wenn neuer text raus geht <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="🙂"
    /><br />
ein Beispiel wies ausschaut hab ich ja schon im alten tread gepostet.<br />
Wenn du sagst das der aufbau ok ist und es gehen müsste frage ich mich weiterhin warum es nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1203802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1203802</guid><dc:creator><![CDATA[fmotto]]></dc:creator><pubDate>Fri, 05 Jan 2007 17:20:13 GMT</pubDate></item></channel></rss>