<?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[Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;)]]></title><description><![CDATA[<p>Hallo</p>
<p>ich weiß das ist jetzt sicher ne absolute NOOB frage. Passt mir auch nicht, finde aber mangels passender Suchbegriffe leider nix brauchbares* Ist warscheinlich wieder dies mit dem Wald vor lauter Bäumen nicht finden.</p>
<p>Ich habe eine Anwendung mit einem Hauptfenster.<br />
In diesem Hauptfenster oder besser in einem aufpobenden Nebenfenster sollen<br />
für jeden Durchlauf der Berechnung die im Hintergrund läuft die aktuellen Werte als Text(String) oder irgend wie ausgegeben werden.<br />
Hatte schon an ein Dialogfeld(modal) gedacht, nur dieses würde ja mein Hauptprogramm lahm legen bis ich es wieder beende, was bei 2000 und mehr Rechendurchgängen nicht sinnvoll wäre...</p>
<p>Im zuge dessen fals jemand ein gutes Buch rund um WinAPI ohne MFC kennt möge er es mir bitte empfehlen. War schon ein wenig auf der suche finde aber fast nur Bücher die sich mit MFC beschäftigen oder mega alt sind oder ich einfach nicht weiß ob sie was taugen besonders für einen Einsteiger.</p>
<p>Schon mal Danke an alle die sich die Mühe machen dies zu lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/112003/textfolge-im-hauptfenster-ausgeben-doofe-noob-frage-kopfeinzieh</link><generator>RSS for Node</generator><lastBuildDate>Wed, 01 Jul 2026 09:48:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/112003.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 07 Jun 2005 13:57:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Tue, 07 Jun 2005 13:57:30 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>ich weiß das ist jetzt sicher ne absolute NOOB frage. Passt mir auch nicht, finde aber mangels passender Suchbegriffe leider nix brauchbares* Ist warscheinlich wieder dies mit dem Wald vor lauter Bäumen nicht finden.</p>
<p>Ich habe eine Anwendung mit einem Hauptfenster.<br />
In diesem Hauptfenster oder besser in einem aufpobenden Nebenfenster sollen<br />
für jeden Durchlauf der Berechnung die im Hintergrund läuft die aktuellen Werte als Text(String) oder irgend wie ausgegeben werden.<br />
Hatte schon an ein Dialogfeld(modal) gedacht, nur dieses würde ja mein Hauptprogramm lahm legen bis ich es wieder beende, was bei 2000 und mehr Rechendurchgängen nicht sinnvoll wäre...</p>
<p>Im zuge dessen fals jemand ein gutes Buch rund um WinAPI ohne MFC kennt möge er es mir bitte empfehlen. War schon ein wenig auf der suche finde aber fast nur Bücher die sich mit MFC beschäftigen oder mega alt sind oder ich einfach nicht weiß ob sie was taugen besonders für einen Einsteiger.</p>
<p>Schon mal Danke an alle die sich die Mühe machen dies zu lesen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/804372</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/804372</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Tue, 07 Jun 2005 13:57:30 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Tue, 07 Jun 2005 15:01:24 GMT]]></title><description><![CDATA[<p>wastman schrieb:</p>
<blockquote>
<p>Hatte schon an ein Dialogfeld(modal) gedacht, nur dieses würde ja mein Hauptprogramm lahm legen bis ich es wieder beende</p>
</blockquote>
<p>Warum nimmst du dann nicht einfach einen nicht-modalen Dialog (CreateDialog)?!</p>
<p>wastman schrieb:</p>
<blockquote>
<p>Im zuge dessen fals jemand ein gutes Buch rund um WinAPI ohne MFC kennt möge er es mir bitte empfehlen.</p>
</blockquote>
<p>Allseits beliebt ist der Petzold:<a href="https://duckduckgo.com/?q=isbn+3860631888&amp;cppnetbooks" rel="nofollow">Windows-Programmierung | ISBN: 3860631888</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/804432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/804432</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 07 Jun 2005 15:01:24 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Tue, 07 Jun 2005 15:49:12 GMT]]></title><description><![CDATA[<p>oh man bin blutiger Anfänger und ich glaube einach überarbeitet ...</p>
<p>Erstmal danke für den Buchtip ist mir vorher in der Büchersektion gar nicht aufgefallen habe ich mir gleich erstmal bestellt. <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>dann zu der Nicht modalen dialog Box ...</p>
<p>Bisher habe ich meine Dialogboxen so erzeugt.</p>
<pre><code class="language-csharp">DialogBox( KIT_instance, MAKEINTRESOURCE( IDD_ONLINE_AUSGABE), KIT_window, KIT_Online_dialog);
</code></pre>
<p>+ die entsprechende Callback funktion.</p>
<p>Aber die ist dann ja laut doku Modal... <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>
<p>daher nutze ich jetzt die von dir Vorgeschlagene Funktion. (Hätte ich auch selber sehen können ärger)</p>
<pre><code class="language-csharp">HWND test= CreateDialog( KIT_instance, MAKEINTRESOURCE( IDD_ONLINE_DATEN), KIT_window, KIT_Online_dialog);	
		if (test ==0)
			MessageBox(KIT_window, &quot;ONLINE DIALOGBOX FEHLER &quot;,&quot;Fehler&quot;, MB_OK);
</code></pre>
<p>Ich weiß ist nicht die beste Methode festzustellen welcher fehler vorliegt..<br />
hab nur noch nicht ganz rausbekommen wie das mit GetLastError Funktioniert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /><br />
Auf jedenfall wird der Dialog nicht aufgerufen.<br />
Werd da wohl morgen weiter machen da ich heute nix mehr in meinen Kopf bekomme</p>
<p>Wenn noch jemand einen Tip hat oder mir die Funktion für das Printen eines Textes als string in das Hauptfenster an einer beliebeigen XY Pos verraten kann wäre ich dankbar</p>
<p>MFG Wastman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/804463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/804463</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Tue, 07 Jun 2005 15:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Tue, 07 Jun 2005 16:33:50 GMT]]></title><description><![CDATA[<p>TextOut / DrawText in WM_PAINT oder du erstellst dir an der Stelle ein Control und setzt dann per SetDlgItemText den Inhalt (finde ich eleganter)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/804512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/804512</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 07 Jun 2005 16:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 10:53:22 GMT]]></title><description><![CDATA[<p>äh, hallo! ich bin grad mit nem ähnlichen problem am start!<br />
ich programmiere schon ewig, aber mit der windows api beschäftige ich mich erst ernsthaft seit ner woche <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="😉"
    /> und mir kommt eins grad mega-unlogisch vor:</p>
<p>hab das hier in der WM_PAINT:</p>
<pre><code>case WM_PAINT:
        {
            MessageBox(0, &quot;WM_PAINT&quot;, /*Inhalt Dlg.-Box*/
                        &quot;DebugMessage&quot;,/*Titelleiste*/
                        MB_OK | MB_ICONEXCLAMATION); /*OK-Button+!Bild*/

            hdc = BeginPaint(hwnd,&amp;ps); // returns the device context to the
                                        // given window and marks the start of
                                        // the paint procedure
            LPSTR text = integerToString(counter);
            TextOut(hdc, 50, 80, text, sizeof(text));
            EndPaint(hwnd,&amp;ps);         // end of painting

            return(0);                  // returns -  Message handled

        }
</code></pre>
<p>wenn ich das programm jetzt ausführe passiert folgendes:<br />
erst erscheint zig-mal das popUp (ich sende nirgendwo selbst die MESSAGE) und dann erscheint jedesmal wenn ich das window resize der neue text (einfach ne zahl). (das popup ist NUR debug)</p>
<p>schön und gut. ich hätte das aber gerne dauernd refresht!</p>
<p>also hab ich mal son BeginPaint/TextOut/EndText im MainLoop eingebaut. es ändert sich dann NIX! es wird trotzdem nur bei resize refreshed.</p>
<p>hab dann versucht jede runde ein SendMessage(main_window_handle,WM_PAINT,0,0); abzuschicken. ändert sich auch nix. es scheint mir, als würde das komplett ignoriert.</p>
<p>Meine Fragen:</p>
<p>1. Was mache ich falsch? Warum kann ich nicht refreshen wann ich will?<br />
2. Warum springt er mehrmals in WM_PAINT? Wozu so viele Messages bei start und resize? Würde nicht eine WM_PAINT reichen?</p>
<p>Ich nutze Dev-Cpp!</p>
<p>Danke von einem WindowsAPI-N00b <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>HILFE <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>
<p>ps.: dos war doch damals viel einfacher <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/805035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805035</guid><dc:creator><![CDATA[adsci]]></dc:creator><pubDate>Wed, 08 Jun 2005 10:53:22 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 11:22:40 GMT]]></title><description><![CDATA[<p>adsci schrieb:</p>
<blockquote>
<p>äh, hallo! ich bin grad mit nem ähnlichen problem am start!<br />
ich programmiere schon ewig, aber mit der windows api beschäftige ich mich erst ernsthaft seit ner woche <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="😉"
    /> und mir kommt eins grad mega-unlogisch vor:</p>
<p>hab das hier in der WM_PAINT:</p>
<pre><code>case WM_PAINT:
        {
            MessageBox(0, &quot;WM_PAINT&quot;, /*Inhalt Dlg.-Box*/
                        &quot;DebugMessage&quot;,/*Titelleiste*/
                        MB_OK | MB_ICONEXCLAMATION); /*OK-Button+!Bild*/

            hdc = BeginPaint(hwnd,&amp;ps); // returns the device context to the
                                        // given window and marks the start of
                                        // the paint procedure
            LPSTR text = integerToString(counter);
            TextOut(hdc, 50, 80, text, sizeof(text));
            EndPaint(hwnd,&amp;ps);         // end of painting
            
            return(0);                  // returns -  Message handled

        }
</code></pre>
<p>wenn ich das programm jetzt ausführe passiert folgendes:<br />
erst erscheint zig-mal das popUp (ich sende nirgendwo selbst die MESSAGE) und dann erscheint jedesmal wenn ich das window resize der neue text (einfach ne zahl). (das popup ist NUR debug)</p>
<p>schön und gut. ich hätte das aber gerne dauernd refresht!</p>
<p>also hab ich mal son BeginPaint/TextOut/EndText im MainLoop eingebaut. es ändert sich dann NIX! es wird trotzdem nur bei resize refreshed.</p>
<p>hab dann versucht jede runde ein SendMessage(main_window_handle,WM_PAINT,0,0); abzuschicken. ändert sich auch nix. es scheint mir, als würde das komplett ignoriert.</p>
<p>Meine Fragen:</p>
<p>1. Was mache ich falsch? Warum kann ich nicht refreshen wann ich will?<br />
2. Warum springt er mehrmals in WM_PAINT? Wozu so viele Messages bei start und resize? Würde nicht eine WM_PAINT reichen?</p>
<p>Ich nutze Dev-Cpp!</p>
<p>Danke von einem WindowsAPI-N00b <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>HILFE <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>
<p>ps.: dos war doch damals viel einfacher <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>
</blockquote>
<p>hallo,</p>
<p>mit:</p>
<p>InvalidateRect(hwnd, NULL, TRUE);<br />
UpdateWindow(hwnd);</p>
<p>kannst Du eine WM_PAINT-Nachricht forcieren.<br />
MessageBox in WM_PAINT zu nutzen macht nicht wirklich Sinn wie Du wohl schon selbst festgestellt hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805062</guid><dc:creator><![CDATA[^o~o^]]></dc:creator><pubDate>Wed, 08 Jun 2005 11:22:40 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 11:31:58 GMT]]></title><description><![CDATA[<p>warum erstellst du dir kein timer und bei jedem timeraufruf rufst du :</p>
<p>SendMessage(hwnd, WM_PAINT, 0, 1);</p>
<p>mit z.B. dem lParam Wert als 1. Dann prüfst du in WM_PAINT ob lParam == 1 und verarbeitest das dann...so gehst du zumindst nur auf die WM_PAINT Nachrichten ein die vom Timer kommmen, und nicht die, die z.B. beim vergrößern des Fensters auftreten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805073</guid><dc:creator><![CDATA[Maikel]]></dc:creator><pubDate>Wed, 08 Jun 2005 11:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 11:37:48 GMT]]></title><description><![CDATA[<p>Maikel schrieb:</p>
<blockquote>
<p>SendMessage(hwnd, WM_PAINT, 0, 1);</p>
</blockquote>
<p>Um Himmels Willen!</p>
<p>MSDN schrieb:</p>
<blockquote>
<p>The WM_PAINT message is generated by the system <strong>and should not be sent by an application.</strong></p>
</blockquote>
<p><a href="http://msdn.microsoft.com/library/en-us/gdi/pantdraw_88ac.asp" rel="nofollow">Quelle</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/805080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805080</guid><dc:creator><![CDATA[MSDN]]></dc:creator><pubDate>Wed, 08 Jun 2005 11:37:48 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 11:38:42 GMT]]></title><description><![CDATA[<p>ich vergaß, wenn Du ein dauerhaftes refresh willst gibts die Möglichkeit einen Timer zu setzen, der je nach Bedarf das Fenster alle x Millisekunden erneuert.</p>
<p>du schreibst dann z.B.</p>
<p>#define Timer1 100 // global definieren</p>
<p>case WM_CREATE:<br />
{<br />
SetTimer(hwnd, Timer1, 100); // sendet alle 100ms eine WM_TIMER-Nachricht</p>
<p>return 0;<br />
}</p>
<p>und fügst</p>
<p>case WM_TIMER:<br />
{<br />
InvalidateRect(hwnd, NULL, TRUE);<br />
UpdateWindow(hwnd);</p>
<p>return 0;<br />
}</p>
<p>in die Mainloop ein.</p>
<p>beim verlassen des Programms oder wenn der Timer nicht mehr benötigt wird</p>
<p>KillTimer(hwnd, Timer1);</p>
<p>hoffe das hilft!</p>
<p>und sorry, formatieren geht hier irgendwie nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805082</guid><dc:creator><![CDATA[^o~o^]]></dc:creator><pubDate>Wed, 08 Jun 2005 11:38:42 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 11:59:01 GMT]]></title><description><![CDATA[<p>MSDN schrieb:</p>
<blockquote>
<p>The WM_PAINT message is generated by the system and should not be sent by an application.</p>
</blockquote>
<p>Ja man kann auch alles stur aus der MSDN lernen...<br />
aber die Funktionen zum Refreshen machen eigentlich nicht viel mehr außer die WM_PAINT Methode aufzurufen, oder?<br />
außerdem fällt mir jetzt keine Möglichkeit ein, wo es schädlich sein kann die Nachricht selbst zu senden...</p>
<p>und das wichtigste ist ja es funktioniert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805099</guid><dc:creator><![CDATA[Maikel]]></dc:creator><pubDate>Wed, 08 Jun 2005 11:59:01 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 12:48:35 GMT]]></title><description><![CDATA[<p><sup>o~o</sup> schrieb:</p>
<blockquote>
<p>ich vergaß, wenn Du ein dauerhaftes refresh willst gibts die Möglichkeit einen Timer zu setzen, der je nach Bedarf das Fenster alle x Millisekunden erneuert.</p>
<p>du schreibst dann z.B.</p>
<p>#define Timer1 100 // global definieren</p>
<p>case WM_CREATE:<br />
{<br />
SetTimer(hwnd, Timer1, 100); // sendet alle 100ms eine WM_TIMER-Nachricht</p>
<p>return 0;<br />
}</p>
<p>und fügst</p>
<p>case WM_TIMER:<br />
{<br />
InvalidateRect(hwnd, NULL, TRUE);<br />
UpdateWindow(hwnd);</p>
<p>return 0;<br />
}</p>
<p>in die Mainloop ein.</p>
<p>beim verlassen des Programms oder wenn der Timer nicht mehr benötigt wird</p>
<p>KillTimer(hwnd, Timer1);</p>
<p>hoffe das hilft!</p>
<p>und sorry, formatieren geht hier irgendwie nicht.</p>
</blockquote>
<p>danke! das funktioniert :)))<br />
aber trotzdem:</p>
<p>1. Warum kann ich nicht refreshen wann ich will?<br />
2. Warum springt er mehrmals in WM_PAINT? Wozu so viele Messages bei start und resize? Würde nicht eine WM_PAINT reichen?</p>
<p>Kann mir wer jemand die fragen beantworten?</p>
<p>es scheint, als wenn der paint sandwich NUR im WM_PAINT case funktioniert.<br />
warum nicht wenn ichs woanders im Programmcode mache?</p>
<pre><code>// MAIN MESSAGE LOOP
    while(TRUE) // Nachrichtenweiterleitung
    {
            if(PeekMessage(&amp;msg,NULL,0,0,PM_REMOVE))
            {
                if(msg.message == WM_QUIT) // on quit break loop
                    break;

                TranslateMessage(&amp;msg); // translate
                DispatchMessage(&amp;msg); // dispatch to WindowProc
            }
        Appl_Main(); // HIER DRIN WOLLTE ICH DEN REFRESH MACHEN ;-) WARUM GEHTS NICHT?
    }
</code></pre>
<p>tut mir leid fürs löcher in den bauch fragen, ich bin jemand der sich nicht wohl dabei fühlt einfach nur zu wissen was man schreiben muss damits geht, sondern auch wissen will warum es anders nicht 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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/805149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805149</guid><dc:creator><![CDATA[adsci]]></dc:creator><pubDate>Wed, 08 Jun 2005 12:48:35 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 13:02:06 GMT]]></title><description><![CDATA[<p>adsci schrieb:</p>
<blockquote>
<p>1. Warum kann ich nicht refreshen wann ich will?</p>
</blockquote>
<p>InvalidateRect kannst du eigentlcih aufrufen, wo du willst - nur Begin-/EndPaint darfst du eben nur in WM_PAINT aufrufen <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>
<p>adsci schrieb:</p>
<blockquote>
<p>2. Warum springt er mehrmals in WM_PAINT? Wozu so viele Messages bei start und resize? Würde nicht eine WM_PAINT reichen?</p>
</blockquote>
<p>Immer wenn Bereiche deines Client-Bereiches ungültig werden bekommst du eben eine WM_PAINT NAchricht, die dir die Möglichkeit gibt, den Fensterinhal neu zu zeichnen. Das kann eben z.B. durch InvalidateRect sein, oder aber auch dadurch, dass du dein Fenster in der Größe änderst, oder Teile zuvor durch ein anderes Fenster verdeckt waren und jetzt wieder sichtbar werden (wobei Windows hier auch teilweise den alten Inhalt speichert und dann selbstständig wiederherstellt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805164</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805164</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 08 Jun 2005 13:02:06 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 14:01:50 GMT]]></title><description><![CDATA[<p>Hmm an diesem Problem hänge ich jetzt auch oder jedenfalls so ähnlich</p>
<p>kann jetzt ein nicht Modales Fenster aufrufen <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="😃"
    /> und darstellen.<br />
Nun ändern sich in meiner Berechnung dauernt Werte die dort angzeigt werden sollen. Also habe ich entsprechende Textfelder angelegt die ich in WM_Paint über eine Variable[] neu befülle und rufe in meiner Berechnung regelmäßig Update_Window()auf ... Nur leider werden die Textfelder nicht aktualiesiert. erst wenn ich das Fenster komplett schließe und wieder öffne sehe ich die geänderten Textausgaben.</p>
<p>Gebt mir bitte mal nen tip was ich da schon wieder falsch mache.. <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>
<p>Callback Funktion des Dialogs</p>
<pre><code class="language-csharp">HWND Online_dialog;
float Auswertung[8]; // global nicht die beste Lösung aber erstmal zum testen

BOOL CALLBACK KIT_Online_dialog (HWND Online_dialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
	char Text[100];
	switch (uMsg)
		{
		case WM_INITDIALOG:

			ShowWindow(Online_dialog,SW_SHOW);
				//EndDialog(hwndDlg,wParam);
		case WM_COMMAND:
			 if ((wParam == IDOK)||(wParam == IDCANCEL))
				{
				EndDialog(Online_dialog,wParam);
				return TRUE;
				}
		case WM_PAINT:
			//MessageBox(Online_dialog, &quot;ONLINE DIALOGBOX PRINT&quot;,&quot;Online Print&quot;, MB_OK);

			sprintf(Text, &quot;V: \t\t %f&quot; ,Auswertung[0] );			
			SetDlgItemText(Online_dialog,6000, Text );

			sprintf(Text, &quot;A: \t\t %f&quot; , Auswertung[1]);			
			SetDlgItemText(Online_dialog,6001, Text );

			sprintf(Text, &quot;S: \t\t %f&quot; , Auswertung[2]);			
			SetDlgItemText(Online_dialog,6002, Text );

			sprintf(Text, &quot;U_Min: \t\t %f&quot; , Auswertung[3]);			
			SetDlgItemText(Online_dialog,6003, Text );

			sprintf(Text, &quot;M_Kraft: \t %f&quot; , Auswertung[4]);			
			SetDlgItemText(Online_dialog,6004, Text );

			sprintf(Text, &quot;Delta S Fahrzeuge: \t %f&quot; , Auswertung[5]);			
			SetDlgItemText(Online_dialog,6005, Text );

			sprintf(Text, &quot;Delta V Fahrzeuge: \t %f&quot; , Auswertung[6]);			
			SetDlgItemText(Online_dialog,6006, Text );

			sprintf(Text, &quot;Pedale: \t\t\t %f&quot; , Auswertung[7]);			
			SetDlgItemText(Online_dialog,6007, Text );

			//ShowWindow(Online_dialog,SW_SHOWNA);		
		}
	return FALSE;
	}
</code></pre>
<p>Aufruf der Update funktion bei jedem Rechendurchgang</p>
<pre><code class="language-csharp">void BeschattenSim::Print(float dD, float dV,float P, float U_min, float M_Kraft, float V, float A, float S)
{
	Auswertung[0] = V;
	Auswertung[1] = A;
	Auswertung[2] = S;
	Auswertung[3] = U_min;
	Auswertung[4] = M_Kraft;
	Auswertung[5] = dD;
	Auswertung[6] = dV;
	Auswertung[7] = P;
	UpdateWindow(Online_dialog);
}
</code></pre>
<p>Gruß wastman</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805224</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Wed, 08 Jun 2005 14:01:50 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 15:34:55 GMT]]></title><description><![CDATA[<p>Nein! SetDlgItemText gehört doch nicht in WM_PAINT - das kannst du z.B. direkt in BeschattenSim::Print packen. Außerdem wäre es wohl sinnvoll für die IDs der Edit-Felder entsprechend Konstanten mit sprechenden Namen zu definieren.</p>
<p>Zu WM_PAINT: Du bräuchtest InvalidateRect (+ ggf. anschließend noch UpdateWindow wenn du nicht warten willst)</p>
<p>Aber jetzt bitte nicht aus bequemlichkeit einfach aus deinem UpdateWindow einen InvalidateRect-Aufruf machen - wie schon gesagt: SetDlgItemText hat nichts in WM_PAINT zu suchen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805303</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 08 Jun 2005 15:34:55 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 16:49:05 GMT]]></title><description><![CDATA[<p>Ok jetzt sieht es so aus:</p>
<pre><code class="language-cpp">void BeschattenSim::Print(float dD, float dV,float P, float U_min, float M_Kraft, float V, float A, float S)
{
	char Text[100];

	sprintf(Text, &quot;V: \t\t %f&quot; ,V );			
	SetDlgItemText(Online_dialog,IDC_ONLINE_V, Text );

	sprintf(Text, &quot;A: \t\t %f&quot; , A);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_A, Text );

	sprintf(Text, &quot;S: \t\t %f&quot; , S);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_S, Text );

	sprintf(Text, &quot;U_Min: \t\t %f&quot; , U_min);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_U_MIN, Text );

	sprintf(Text, &quot;M_Kraft: \t %f&quot; , M_Kraft);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_M_KRAFT, Text );

	sprintf(Text, &quot;Delta S Fahrzeuge: \t %f&quot; , dD);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_DS, Text );

	sprintf(Text, &quot;Delta V Fahrzeuge: \t %f&quot; , dV);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_DV, Text );

	sprintf(Text, &quot;Pedale: \t\t\t %f&quot; , P);			
	SetDlgItemText(Online_dialog,IDC_ONLINE_Pedale, Text );

	InvalidateRect(Online_dialog,NULL,FALSE);
	//UpdateWindow(Online_dialog);
}
</code></pre>
<pre><code class="language-cpp">BOOL CALLBACK KIT_Online_dialog (HWND Online_dialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
	switch (uMsg)
		{
		case WM_INITDIALOG:
			Sim.Print(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Initaliesieren mit Null werten des Dialogs
			ShowWindow(Online_dialog,SW_SHOW);
				//EndDialog(hwndDlg,wParam);
		case WM_COMMAND:
			 if ((wParam == IDOK)||(wParam == IDCANCEL))
				{
				EndDialog(Online_dialog,wParam);
				return TRUE;
				}
	//	case WM_PAINT:
			//ShowWindow(Online_dialog,SW_SHOWNA);		
	//		return TRUE;
		}
	return FALSE;
	}
</code></pre>
<p>Folgende 2 Probleme:<br />
SetDlgItemText scheint nicht mehr zu Funktionieren. Jedenfals bleibt jetzt immer der standart Anfangstext &quot;Static&quot; in den Textfelden stehen. Obwohl laut Debugger die Strings richtig gesetzt sind in der Var. Text[]</p>
<p>InvalidateRect(Online_dialog,NULL,FALSE); Bei dieser Fkt bin ich mir auch noch nicht so ganz sicher ob das sooo richtig ist, da momentan der gesammte Bildschirm bei einer holen wiederholrate flackert, was mir sagt, dass nicht nur das Dialogfenster neu gezeichnet wird. Liegt sicher an der NULL die ich übergeben habe für RECT...... <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="😕"
    /> oder? Wenn ja wie stelle ich das am besten ab.</p>
<p>Warscheinlich wäre auch noch ein timer sinnvoll, damit nur jeder 10 rechendurchgang bzw nur alle paar sek ein neuzeichnen stattfindet auf preformance gründen oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805369</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Wed, 08 Jun 2005 16:49:05 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 18:44:46 GMT]]></title><description><![CDATA[<p>Ist Online_dialog gültig? Das InvalidateRect brauchst du übrigens gar nicht <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/805455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805455</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Wed, 08 Jun 2005 18:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Wed, 08 Jun 2005 22:04:11 GMT]]></title><description><![CDATA[<p>Ja Online_dialog ist eine globale Variable vom Typ HWND</p>
<pre><code class="language-cpp">HWND Online_dialog;
</code></pre>
<p>vondaher sollte sie eigendlich gültig sein....<br />
Oder ist das in diesem Fall doppelt gemoppelt mit der lokalen Variablen def. im Funktionsrumpf der Callback Funktion der DialogBox??<br />
BZW. Überschreibe ich die globale Variable Online_dialog in diesem Fall nicht mit der lokalen in der Funktion..... zumindest im Bereich der Funktion...<br />
ah gerade voll unsicher ... *zurück ans zeichenbrett* <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>Wenn jemand die Lösung des Problems kennt bin ganz ohr dafür und lernfähig <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/805537</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805537</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Wed, 08 Jun 2005 22:04:11 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Thu, 09 Jun 2005 05:12:24 GMT]]></title><description><![CDATA[<p>wastman schrieb:</p>
<blockquote>
<p>BZW. Überschreibe ich die globale Variable Online_dialog in diesem Fall nicht mit der lokalen in der Funktion..... zumindest im Bereich der Funktion...</p>
</blockquote>
<p>Du überdeckst damit die globale Variable - merke aber gerade, dass du ja geschrieben hattest, dass des Fenster flackert, also scheint der InvalidateRect-Aufruf gültig gewesen zu sein (und damit auch das Dialog-Hnalde).</p>
<p>Bei case WM_INITDIALOG fehlt dir übrigens noch das return am Ende - so springt er ja auch gleich noch mit in WM_COMMAND hinein <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>
<p>Hast du mal den Rückgabewert von SetDlgItemText angeschaut - und dann evtl. GetLastError?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805580</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Thu, 09 Jun 2005 05:12:24 GMT</pubDate></item><item><title><![CDATA[Reply to Textfolge im Hauptfenster ausgeben (doofe noob frage &#x2F;Kopfeinzieh&#x2F;) on Thu, 09 Jun 2005 09:13:16 GMT]]></title><description><![CDATA[<p>Hmm genau genommen flackert nicht das Dialog Fenster sondern der gesammte Bildschirm. Daher tipp ich mal das der Handle nicht richtig ist.</p>
<p>Der fehler Bestätigt es auch nochmal</p>
<pre><code class="language-cpp">void BeschattenSim::Print(float dD, float dV,float P, float U_min, float M_Kraft, float V, float A, float S)
{
	if (OnlineDialog== true) // Wenn Dialog offen
	{
		char Text[100];
		bool fehler;	

		sprintf(Text, &quot;V: \t\t %f&quot; ,V );			
		fehler = SetDlgItemText(Online_dialog,IDC_ONLINE_V, Text );
		if(fehler == false)
		{
			LPVOID lpMsgBuf;
			FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL,
							GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &amp;lpMsgBuf, 0, NULL );
			MessageBox( NULL, (LPCTSTR)lpMsgBuf, &quot;Error&quot;, MB_OK | MB_ICONINFORMATION );
		// Free the buffer.
		LocalFree( lpMsgBuf );
		}

		sprintf(Text, &quot;A: \t\t %f&quot; , A);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_A, Text );

		sprintf(Text, &quot;S: \t\t %f&quot; , S);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_S, Text );

		sprintf(Text, &quot;U_Min: \t\t %f&quot; , U_min);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_U_MIN, Text );

		sprintf(Text, &quot;M_Kraft: \t %f&quot; , M_Kraft);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_M_KRAFT, Text );

		sprintf(Text, &quot;Delta S Fahrzeuge: \t %f&quot; , dD);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_DS, Text );

		sprintf(Text, &quot;Delta V Fahrzeuge: \t %f&quot; , dV);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_DV, Text );

		sprintf(Text, &quot;Pedale: \t\t\t %f&quot; , P);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_Pedale, Text );

		sprintf(Text, &quot;Durchlauf Nummer:  %d&quot; , RnR);			
		SetDlgItemText(Online_dialog,IDC_ONLINE_RNR, Text );

		UpdateWindow(Online_dialog);
	}
}
</code></pre>
<p>Fehler: Ungültiges Fensterhandle</p>
<p>Wie kann ich dem sinnvoll abhilfe schaffen??<br />
würde jetzt einfach ganz naiv probieren im INIT des Dialogs den Lokalen Handle in einen Globalen speichern (natürlich nicht mit dem selben namen <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>
<pre><code class="language-cpp">BOOL CALLBACK KIT_Online_dialog (HWND Online_Dialog, UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
	switch (uMsg)
		{
		case WM_INITDIALOG:
			Online_dialog = Online_Dialog;
			Sim.OnlineDialog= true;
			Sim.Print(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0); // Initaliesieren mit Null werten
			ShowWindow(Online_dialog,SW_SHOW);
			return TRUE;
				//EndDialog(hwndDlg,wParam);
		case WM_COMMAND:
			 if ((wParam == IDOK)||(wParam == IDCANCEL))
				{
				 Sim.OnlineDialog=false;
				EndDialog(Online_dialog,wParam);
				return TRUE;
				}
	//	case WM_PAINT:
			//ShowWindow(Online_dialog,SW_SHOWNA);		
	//		return TRUE;
		}
	return FALSE;
	}
</code></pre>
<p>Funktioniert im übrigen auch supi solange man vor dem Start der Sim das Fenster auch aufmacht <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="🙂"
    /> ansonsten kommt wie zu erwarten der Fehler , das kein Fenster Handle vorhanden ist. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /><br />
[Edit] das hab ich jetzt erstmal mit einem Flag abgefangen... [/Edit]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/805676</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/805676</guid><dc:creator><![CDATA[wastman]]></dc:creator><pubDate>Thu, 09 Jun 2005 09:13:16 GMT</pubDate></item></channel></rss>