<?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[Textausgabe]]></title><description><![CDATA[<p>Hallo,<br />
ich würde gerne ne normale Textausgabe in nen Windows Fenster machen. Soweit geht das auch ganz gut nur ist es bis jetzt so das der Text sofort da ist. Ich würde es lieber so haben das die Buchstaben nach und nach erscheinen so Schreibmaschienenmäßig. Nur weiss ich nicht wirklich wie. Die Pausen zwischen einzelnen Zeilen sollte auch immer unterschiedlich sein. Wie kann ich das am besten hinbekommen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/114648/textausgabe</link><generator>RSS for Node</generator><lastBuildDate>Thu, 02 Jul 2026 16:13:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/114648.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Jul 2005 12:17:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textausgabe on Wed, 06 Jul 2005 12:17:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich würde gerne ne normale Textausgabe in nen Windows Fenster machen. Soweit geht das auch ganz gut nur ist es bis jetzt so das der Text sofort da ist. Ich würde es lieber so haben das die Buchstaben nach und nach erscheinen so Schreibmaschienenmäßig. Nur weiss ich nicht wirklich wie. Die Pausen zwischen einzelnen Zeilen sollte auch immer unterschiedlich sein. Wie kann ich das am besten hinbekommen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825014</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Wed, 06 Jul 2005 12:17:06 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Wed, 06 Jul 2005 12:18:08 GMT]]></title><description><![CDATA[<p>Nimmst dir ein Static-Control, einen Timer und SetWindowText</p>
]]></description><link>https://www.c-plusplus.net/forum/post/825015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/825015</guid><dc:creator><![CDATA[3 sachen]]></dc:creator><pubDate>Wed, 06 Jul 2005 12:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Thu, 07 Jul 2005 14:34:40 GMT]]></title><description><![CDATA[<p>Naja soweit bin ich schon. Mein Problem liegt darin das ich nicht weiss wie ich den Timer benutzen soll. Timer setzen hab ich drin. Den Timer wieder killen hab ich auch drin. Aber wie setze ich den Timer jetzt auch noch ein ? Könnte mir vielleicht jemand nen kleines Beispiel geben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/826028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826028</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Thu, 07 Jul 2005 14:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Thu, 07 Jul 2005 14:41:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">case WM_TIMER:
   // ...
   break;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/826032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/826032</guid><dc:creator><![CDATA[1 sache]]></dc:creator><pubDate>Thu, 07 Jul 2005 14:41:47 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Sun, 10 Jul 2005 10:27:34 GMT]]></title><description><![CDATA[<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/usingtimers.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/usingtimers.asp</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/827670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/827670</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Sun, 10 Jul 2005 10:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Mon, 11 Jul 2005 16:38:48 GMT]]></title><description><![CDATA[<p>miller_m schrieb:</p>
<blockquote>
<p><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/usingtimers.asp" rel="nofollow">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/usingtimers.asp</a></p>
</blockquote>
<p>Ja die Seite kenne ich. Bzw gucke ich sowieso immer zuerst auf der MSDN Seite. Aber ich komme damit nicht so wirklich klar. Dort heisst es:</p>
<blockquote>
<p>// process the 10-second timer</p>
</blockquote>
<p>So ich hatte mir auch mal das Win32API Buch von Petzold gekauft. Dort gibt es auch so nen Beispiel. Wenn ich das richtig verstanden hab soll in &quot;case WM_TIMER&quot; und dann da wo die beiden &quot;//&quot; sind die Sachen rein die alle 10 Sekunden ausgeführt werden sollen. Oder sehe ich das falsch ? Wenn ich da zumindest mein &quot;DrawText&quot; einfüge dann erhalte ich natürlich die Schrift nicht. Der Timer funktioniert aber ich hab um das zu testen noch nen &quot;MessageBeep&quot; eingebaut. Irgendwie verwirrt mich das ganze. Werd wohl noch weiter im Netz danach suchen und hoffen das ich irgendwann mal irgendwas finde womit ich was anfangen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/828593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828593</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Mon, 11 Jul 2005 16:38:48 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Mon, 11 Jul 2005 18:12:06 GMT]]></title><description><![CDATA[<p>Yasha schrieb:</p>
<blockquote>
<p>Wenn ich das richtig verstanden hab soll in &quot;case WM_TIMER&quot; und dann da wo die beiden &quot;//&quot; sind die Sachen rein die alle 10 Sekunden ausgeführt werden sollen. Oder sehe ich das falsch ?</p>
</blockquote>
<p>siehst du richtig</p>
<p>Yasha schrieb:</p>
<blockquote>
<p>Wenn ich da zumindest mein &quot;DrawText&quot; einfüge dann erhalte ich natürlich die Schrift nicht. Der Timer funktioniert aber ich hab um das zu testen noch nen &quot;MessageBeep&quot; eingebaut.</p>
</blockquote>
<p>zeichnest du das fenster auch neu UpdateWindow()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/828668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828668</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 11 Jul 2005 18:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Mon, 11 Jul 2005 18:27:41 GMT]]></title><description><![CDATA[<p>Zeichnen solltest du nur in WM_PAINT und in WM_TIMER dann nur InvalidateRect (+ ggf. UpdateWindow)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/828683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828683</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Mon, 11 Jul 2005 18:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Mon, 11 Jul 2005 20:13:38 GMT]]></title><description><![CDATA[<p>Meins sieht jetzt so aus und ist warscheinlich total Falsch....</p>
<pre><code>case WM_TIMER :
				MessageBeep (-1) ;
				DrawText (hdc, TEXT (&quot;Nur ein Test&quot;), -1, &amp;rect,
				DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
				InvalidateRect (hwnd, NULL, FALSE) ;
			return 0 ;

		case WM_PAINT :
			hdc = BeginPaint (hwnd, &amp;ps) ;
			GetClientRect (hwnd, &amp;rect) ;
			EndPaint (hwnd, &amp;ps);
			return 0 ;

		case WM_DESTROY:
			KillTimer (NULL, Timer1) ;
			PostQuitMessage (0) ;
			return 0 ;
		}
		return DefWindowProc (hwnd, message, wParam, lParam) ;
	}
</code></pre>
<p>Beim bauen meckert er dann natürlich über die Variable hdc. War mir irgendwie auch klar dass das so endet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/828786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828786</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Mon, 11 Jul 2005 20:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Mon, 11 Jul 2005 20:52:46 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">PAINTSTRUCT ps; 
HDC hdc; 

case WM_TIMER :
	UpdateWindow(hwnd);
    return 0 ;
case WM_PAINT :
	hdc = BeginPaint (hwnd, &amp;ps) ;
	GetClientRect (hwnd, &amp;rect) ;
        DrawText (hdc, TEXT (&quot;Nur ein Test&quot;), -1, &amp;rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
	EndPaint (hwnd, &amp;ps);
    return 0 ;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/828821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828821</guid><dc:creator><![CDATA[miller_m]]></dc:creator><pubDate>Mon, 11 Jul 2005 20:52:46 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Tue, 12 Jul 2005 02:38:29 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/417">@miller_m</a><br />
Mhm danke erstmal aber es funktioniert noch nicht ganz so wie es soll. Wenn ich es so übernehme wie von dir geschrieben dann ist der Text sofort da und danach passiert nichts mehr. Hab es dann nochmal etwas abgeändert das mit dem Timer sieht jetzt so aus:</p>
<pre><code>case WM_TIMER :
				InvalidateRect(hwnd, NULL, TRUE) ;
				UpdateWindow(hwnd) ;
				return 0 ;
</code></pre>
<p>Naja nun sieht man das er im Sekundentakt das Bild quasi neu Zeichnet. Man sieht halt immer ein kurzes Flackern. Ich wollte das aber irgendwie so haben das bei dem Satz &quot;Nur ein Test&quot; die Buchstaben im Sekundentakt auftauchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/828882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828882</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Tue, 12 Jul 2005 02:38:29 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Tue, 12 Jul 2005 04:53:38 GMT]]></title><description><![CDATA[<p>Dann musst du dir eine statische Variable anlegen, die du in WM_TIMER hochzählst. In Abhängigkeit davon gibst du dann eben den String bis zu diesem Zeichen aus <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>
<p>In deinem Fall kannst du das Flackern dadurch unterbinden, dass du bei InvalidateRect als letzten Parameter FALSE nimmst - das bewirkt dann, dass dein Fensterinhalt nicht gelöst wird und du einfach über den alten Inhalt drüberzeichnest <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/828887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/828887</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 12 Jul 2005 04:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Thu, 14 Jul 2005 19:12:36 GMT]]></title><description><![CDATA[<p>Erstmal nochmal danke an alle für die Tips. Hab es jetzt hinbekommen <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>
<blockquote>
<p>Dann musst du dir eine statische Variable anlegen, die du in WM_TIMER hochzählst. In Abhängigkeit davon gibst du dann eben den String bis zu diesem Zeichen aus</p>
</blockquote>
<p>Ich weiss grade nicht ob ich das gemacht hab was du meintest. Bin im Grunde totaler Anfänger hab erst mit einfachen ausgaben in nen Dosfenster begonnen und hab jetzt halt angefangen das ganze mit der winAPI zu machen. Werde mal die teile vom Code hier Posten die geändert wurden. Vielleicht kann mir ja dann auch jemand sagen ob die Lösung so ok ist</p>
<pre><code>int i = 0; 

char text1[] = &quot;Nur ein Test&quot;;
    	char text2[] = &quot;Noch ein weiterer Test&quot;;
    	char text3[] = &quot;und jetzt nichts mehr&quot;;

case WM_TIMER :
                 GetClientRect (hwnd, &amp;rect);
				InvalidateRect(hwnd, NULL, TRUE) ;
				break;

case WM_PAINT :
			hdc = BeginPaint (hwnd, &amp;ps) ;
			GetClientRect (hwnd, &amp;rect) ;
			if (i == 0)
			{
				DrawText (hdc, text1, -1, &amp;rect, DT_LEFT | DT_VCENTER) ;
				i = 1;
            }
            else if (i == 1)
            {
				DrawText (hdc, text2, -1, &amp;rect, DT_CENTER | DT_VCENTER) ;
                 i = 2;
             }
             else
             {
				DrawText (hdc, text3, -1, &amp;rect, DT_RIGHT | DT_VCENTER) ;
                 i = 0;
             }

			EndPaint (hwnd, &amp;ps);
			return DefWindowProc(hwnd, message, wParam, lParam); 
			break;
</code></pre>
<p>So schauts jetzt aus und es funktioniert auch ohne Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/831328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/831328</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Thu, 14 Jul 2005 19:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Thu, 14 Jul 2005 19:48:42 GMT]]></title><description><![CDATA[<p>bei der stringlaenge von drawtext musst du deine variable angeben, die immer einen hochgezaehlt wird, sodass immer ein buchstabe mehr dargestellt wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/831346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/831346</guid><dc:creator><![CDATA[Moh]]></dc:creator><pubDate>Thu, 14 Jul 2005 19:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Thu, 14 Jul 2005 21:10:55 GMT]]></title><description><![CDATA[<p>Yasha scheint jetzt wohl doch nicht mehr Zeichen für Zeichen ausgeben zu wollen, sondern nacheinander verschiedene Texte?!</p>
<p>@Yasha: dein i solltest du besser in WM_TIMER hochzählen, denn WM_PAINT bekommst du unter Umständen öfters mal auch zwischendurch (z.B. nach Wiederhestellen nachdem dein Fenster minimiert war, o.ä.)<br />
Zur besseren Übersichtlichkeit, wäre evtl. statt den if/else ein switch ganz praktisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/831402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/831402</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 14 Jul 2005 21:10:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textausgabe on Fri, 15 Jul 2005 15:29:32 GMT]]></title><description><![CDATA[<blockquote>
<p>Yasha scheint jetzt wohl doch nicht mehr Zeichen für Zeichen ausgeben zu wollen, sondern nacheinander verschiedene Texte?!</p>
</blockquote>
<p>Ähm ja sorry. Wenn irgendwas funktioniert so wie es sollte überleg ich mir gleich was man noch dazu machen könnte. Als nächstes werde ich da noch verschiedene Sounddateien abspielen lassen. Und zwar so das es irgendwie mit den Texten die ausgegeben werden zusammen passt mal gucken wie ich das anstelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/831849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/831849</guid><dc:creator><![CDATA[Yasha]]></dc:creator><pubDate>Fri, 15 Jul 2005 15:29:32 GMT</pubDate></item></channel></rss>