<?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[Visual C++ WM_XY]]></title><description><![CDATA[<p>Hallihallo,</p>
<p>ich habe eine Resource-Dialogbox als Hauptfenster.<br />
Diese Dialogbox enthält ein mehrzeiliges Textfeld, welches ich ständig aktualisieren und möglicherweise dann eben auch ändern möchte.<br />
Das geht ja relativ einfach mit GetDlgItemText() und SetDlgItemText(), mir ist jedoch nicht klar, wie ich es nun ständig aktualisieren kann.<br />
Ich dachte da an ein WM_-case bei switch(msg), welches standardmäßig durchgeführt wird ohne direkt aufgerufen worden zu sein, also so etwas wie &quot;WM_DEFAULT&quot;.</p>
<p>Gibt es sowas oder hat jemand eine andere Idee wie ich mein Textfeld aktualisieren kann?</p>
<p>lg Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/198977/visual-c-wm_xy</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 21:32:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/198977.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Nov 2007 17:24:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Visual C++ WM_XY on Tue, 27 Nov 2007 17:24:23 GMT]]></title><description><![CDATA[<p>Hallihallo,</p>
<p>ich habe eine Resource-Dialogbox als Hauptfenster.<br />
Diese Dialogbox enthält ein mehrzeiliges Textfeld, welches ich ständig aktualisieren und möglicherweise dann eben auch ändern möchte.<br />
Das geht ja relativ einfach mit GetDlgItemText() und SetDlgItemText(), mir ist jedoch nicht klar, wie ich es nun ständig aktualisieren kann.<br />
Ich dachte da an ein WM_-case bei switch(msg), welches standardmäßig durchgeführt wird ohne direkt aufgerufen worden zu sein, also so etwas wie &quot;WM_DEFAULT&quot;.</p>
<p>Gibt es sowas oder hat jemand eine andere Idee wie ich mein Textfeld aktualisieren kann?</p>
<p>lg Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411156</guid><dc:creator><![CDATA[MaDsTyLe]]></dc:creator><pubDate>Tue, 27 Nov 2007 17:24:23 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 06:53:16 GMT]]></title><description><![CDATA[<p>Warum ständig aktualisieren?</p>
<p>Aber ok. Auf die schnelle nur das:</p>
<p>Timer, Intervall einstellen, UpdateWindow() bzw. Invalidate aufs Edit.</p>
<p>grüssle <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/1411364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411364</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 28 Nov 2007 06:53:16 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 07:02:58 GMT]]></title><description><![CDATA[<p>Smitty schrieb:</p>
<blockquote>
<p>Warum ständig aktualisieren?</p>
<p>Aber ok. Auf die schnelle nur das:</p>
<p>Timer, Intervall einstellen, UpdateWindow() bzw. Invalidate aufs Edit.</p>
<p>grüssle <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>Ich glaub das brauchst du nicht mal. Leg eine Membervariable an, ändere deren Wert und rufe UpdateData(false) auf. Den Rest dürfte das Editfeld selber machen. UpdateWindow kann unschönes Flackern erzeugen wenn die Aktualisierungszeiten relativ klein werden.<br />
Ansonsten das mit dem Timer würde ich auch so machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411369</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 28 Nov 2007 07:02:58 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 07:10:17 GMT]]></title><description><![CDATA[<p>Wenn zwischendrin, die Messageloop an die Reihe kommt, (du also einfach über einen Timer arbeitest), dann musst Du gar nichts machen. Nur ein gewisses Flackern wird sich nicht vermeiden lassen. Evtl. lässt sich das mit einem direkten UpdateWndow, nach SetWindowText in der Timerroutine etwas eingrenzen.</p>
<p>EDIT: Habe ich vergessen. Wenn Du Text hinzufügst solltest Du in jedem Fall ReplaceSel verwenden!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411373</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 28 Nov 2007 07:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 08:52:40 GMT]]></title><description><![CDATA[<p>MaDsTyLe schrieb:</p>
<blockquote>
<p>...<br />
Diese Dialogbox enthält ein mehrzeiliges Textfeld, welches ich <strong>ständig aktualisieren</strong> und möglicherweise dann eben auch ändern möchte...</p>
<p>lg Max</p>
</blockquote>
<p>hi ihr zwei,</p>
<p>ja ne - is klar. Das <strong>ständig aktualisieren</strong> hat mich etwas verwirrt. Steht nicht dabei, in welchen Abständen.</p>
<p>grüssle <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/1411402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411402</guid><dc:creator><![CDATA[Smitty]]></dc:creator><pubDate>Wed, 28 Nov 2007 08:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 08:57:45 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Wenn zwischendrin, die Messageloop an die Reihe kommt, (du also einfach über einen Timer arbeitest), dann musst Du gar nichts machen. Nur ein gewisses Flackern wird sich nicht vermeiden lassen. Evtl. lässt sich das mit einem direkten UpdateWndow, nach SetWindowText in der Timerroutine etwas eingrenzen.</p>
<p>EDIT: Habe ich vergessen. Wenn Du Text hinzufügst solltest Du in jedem Fall ReplaceSel verwenden!</p>
</blockquote>
<p>Das sollte der Fall sein, sonst hat das mit dem Timer keinen Sinn. Ich hab da in einem Beispiel Messwerte, die sich alle 100 ms updaten. Mit dem reinen UpdateData funktioniert das recht gut, den Rest macht ja das Anwendungsgerüst.</p>
<p>Smitty schrieb:</p>
<blockquote>
<p>MaDsTyLe schrieb:</p>
<blockquote>
<p>...<br />
Diese Dialogbox enthält ein mehrzeiliges Textfeld, welches ich <strong>ständig aktualisieren</strong> und möglicherweise dann eben auch ändern möchte...</p>
<p>lg Max</p>
</blockquote>
<p>hi ihr zwei,</p>
<p>ja ne - is klar. Das <strong>ständig aktualisieren</strong> hat mich etwas verwirrt. Steht nicht dabei, in welchen Abständen.</p>
<p>grüssle <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>Ich denke kürzere Zeiten machen keinen Sinn. Ist ja nur Text. So schnell ist kein Auge.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411406</guid><dc:creator><![CDATA[AndyDD]]></dc:creator><pubDate>Wed, 28 Nov 2007 08:57:45 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 12:42:50 GMT]]></title><description><![CDATA[<p>Vielen Dank für Eure Antworten!</p>
<p>Leider habe noch nie mit einem Timer gearbeitet.</p>
<p>Also es geht darum über einen socket auf Daten zu warten und jedes Mal, wenn neue Daten vorhanden sind, diese im Textfeld anzuzeigen.</p>
<p>Auf jeden Fall wäre es nett, wenn mir jemand einen Link geben könnte, wo ich was über den Timer, bzw UpdateWindow() lesen kann.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a>: ReplaceSel?</p>
<p>lg Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411532</guid><dc:creator><![CDATA[MaDsTyLe]]></dc:creator><pubDate>Wed, 28 Nov 2007 12:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 13:02:44 GMT]]></title><description><![CDATA[<p>Die Lösung mit dem Timer läuft letztlich darauf hinaus, daß du zyklisch abfragen müsstest, ob sich etwas geändert hat - wie erkennst du denn bisher, ob Daten da sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411548</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 28 Nov 2007 13:02:44 GMT</pubDate></item><item><title><![CDATA[Reply to Visual C++ WM_XY on Wed, 28 Nov 2007 16:38:18 GMT]]></title><description><![CDATA[<p>Naja ganz einfach:</p>
<pre><code>char Text[10000] = &quot;&quot;;
char Buffer[256] = &quot;&quot;;

recv(Socket,Buffer,256,0);

GetDlgItemText(hDlg,TEXT_WINDOW,Text);

if (Buffer[0] != '\0') SetDlgItemText(hDlg,TEXT_WINDOW,Merge(Text,Buffer));

Buffer[0] = '\0'; //Zurücksetzen
</code></pre>
<p>Merge() macht nichts anderes als sprintf_s(result,&quot;%s\r\n%s&quot;,Text,Buffer) und dann natürlich return result.</p>
<p>Aber ich weiß eben nicht, wie ich das jetzt immer wieder durchführen lassen kann.</p>
<p>lg Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1411718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1411718</guid><dc:creator><![CDATA[MaDsTyLe]]></dc:creator><pubDate>Wed, 28 Nov 2007 16:38:18 GMT</pubDate></item></channel></rss>