<?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[Timer problem]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich versuch grad ein problem zu versthen, aber dazu fehlt mir wohl die kenntniss ueber windows selbst.</p>
<p>Also: ich wndproc in dem ich mir einen Timer mach ca so:</p>
<pre><code class="language-cpp">WndProc(hwnd,msg,lp,wp) ~
{
....
case WM_CREATE: SetTimer(hwnd,1,3000,0); break;
case WM_TIMER: DoSomething(); break;
}
</code></pre>
<p>Das funktioniert auch soweit ganz gut, is ja simpel.</p>
<p>So, ich wenn ich jetzt aber das mache gehts nicht mehr:</p>
<pre><code class="language-cpp">WndProc(hwnd,msg,lp,wp) ~
{
....
case WM_CREATE: SetTimer(hwnd,1,3000,0); return 0;
case WM_TIMER: DoSomething(); return 0;
case WM_PAINT:
     {
      BeginPaint (Hwnd, &amp;ps);
	EndPaint (Hwnd, &amp;ps) ;
     RenderOglFrame();
     SwapBuffers (hDC);
     InvalidateRect(hwnd,0,true);
     return 0;
     }
}
</code></pre>
<p>entferne ich das InvalidateRect(hwnd,0,true); gehts, das will ich aber, den so produzier ein konstanten neuzeichnens.</p>
<p>Was ich jetzt ueberhaupt nicht versteht ist warum es dann keine WM_TIMER mehr durchkommt (?? nicht gesendet/ nicht empfangen .. ka) alle andern msg's (so weit ich sie benutzte) arbeiten immer noch gut, wie WM_MOUSE... oder WM_KEYDOWN ...!<br />
Nur die WM_TIMER is nich mehr????</p>
<p>Und das macht fuer mich keinen Sinn, warum? Und was kann man da tun?</p>
<p>Vielen Dank<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/124483/timer-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 10:33:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/124483.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 Oct 2005 00:11:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Timer problem on Fri, 28 Oct 2005 00:11:27 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich versuch grad ein problem zu versthen, aber dazu fehlt mir wohl die kenntniss ueber windows selbst.</p>
<p>Also: ich wndproc in dem ich mir einen Timer mach ca so:</p>
<pre><code class="language-cpp">WndProc(hwnd,msg,lp,wp) ~
{
....
case WM_CREATE: SetTimer(hwnd,1,3000,0); break;
case WM_TIMER: DoSomething(); break;
}
</code></pre>
<p>Das funktioniert auch soweit ganz gut, is ja simpel.</p>
<p>So, ich wenn ich jetzt aber das mache gehts nicht mehr:</p>
<pre><code class="language-cpp">WndProc(hwnd,msg,lp,wp) ~
{
....
case WM_CREATE: SetTimer(hwnd,1,3000,0); return 0;
case WM_TIMER: DoSomething(); return 0;
case WM_PAINT:
     {
      BeginPaint (Hwnd, &amp;ps);
	EndPaint (Hwnd, &amp;ps) ;
     RenderOglFrame();
     SwapBuffers (hDC);
     InvalidateRect(hwnd,0,true);
     return 0;
     }
}
</code></pre>
<p>entferne ich das InvalidateRect(hwnd,0,true); gehts, das will ich aber, den so produzier ein konstanten neuzeichnens.</p>
<p>Was ich jetzt ueberhaupt nicht versteht ist warum es dann keine WM_TIMER mehr durchkommt (?? nicht gesendet/ nicht empfangen .. ka) alle andern msg's (so weit ich sie benutzte) arbeiten immer noch gut, wie WM_MOUSE... oder WM_KEYDOWN ...!<br />
Nur die WM_TIMER is nich mehr????</p>
<p>Und das macht fuer mich keinen Sinn, warum? Und was kann man da tun?</p>
<p>Vielen Dank<br />
Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/902354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/902354</guid><dc:creator><![CDATA[Flow_cplus]]></dc:creator><pubDate>Fri, 28 Oct 2005 00:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Timer problem on Fri, 28 Oct 2005 04:57:14 GMT]]></title><description><![CDATA[<p>Grob gesagt: Timernachrichten werden nur bearbeitet, wenn sonst grad nichts zu tun ist. Du sorgst dafür, dass immer was zu tun ist...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/902370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/902370</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Fri, 28 Oct 2005 04:57:14 GMT</pubDate></item><item><title><![CDATA[Reply to Timer problem on Fri, 28 Oct 2005 08:17:55 GMT]]></title><description><![CDATA[<p>Timer noch am ende Killen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/902492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/902492</guid><dc:creator><![CDATA[Tc++H]]></dc:creator><pubDate>Fri, 28 Oct 2005 08:17:55 GMT</pubDate></item><item><title><![CDATA[Reply to Timer problem on Sat, 29 Oct 2005 17:16:45 GMT]]></title><description><![CDATA[<p>genau. die WM_PAINT message hat höchste priorität. da du bei der bearbeitung von WM_PAINT InvalidateRect() aufrufst, werden *ununterbrochen* nur WM_PAINT messages verarbeitet. an deiner stelle würde ich einen timer verwenden, um das neuzeichen des fensterinhalts zu steuern. zB</p>
<pre><code class="language-cpp">enum // timer-events
{
  ...
  timer_redraw_window,
  ...
};

case WM_CREATE:
  ...
  SetTimer(hwnd,timer_redraw_window,100,0); // redraw-event auf 10 mal pro sekunde einstellen
  ...
  return 0;

case WM_TIMER:
  ...
  if(wparam==timer_redraw_window) // redraw event
    InvalidateRect(hwnd,0,TRUE);
  ...
  return 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/903506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/903506</guid><dc:creator><![CDATA[Konfusius]]></dc:creator><pubDate>Sat, 29 Oct 2005 17:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Timer problem on Sun, 30 Oct 2005 23:36:32 GMT]]></title><description><![CDATA[<p>mmh</p>
<p>Das Invalidate hatte ich vorher mal in dem timer drin, aber irgendwie scheinen die timer nicht so ganz genau zu laufen, wenn die zeit &lt; 50 ms, zusmindest scheint das nicht zu konstant zu sein.</p>
<p>Mir is klar das ich so immer eine WM_PAINT in der warte schleife habe. Ich wuerde gerne verstehen warum alle andren msg's wie WM_MOUSE..., oder KEYDOWN oder so weiterhin funktionieren, aber die WM_TIMER nicht mehr. Wo ist der unterschied?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/904219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/904219</guid><dc:creator><![CDATA[Flow_cplus]]></dc:creator><pubDate>Sun, 30 Oct 2005 23:36:32 GMT</pubDate></item><item><title><![CDATA[Reply to Timer problem on Mon, 31 Oct 2005 00:08:14 GMT]]></title><description><![CDATA[<p>der Timer ist da zu da, um in Ruhepausen denoch Code auszuführen etc., läuft aber eine Schleife oder ständige Abarbeitung, ist der Timer überflüssig, da man dan im code selbst zeit messen kann und Code entsprechend ausführen kann, denn der Timer ist ungenauer als deine Handy Uhr. Im Klartext, alles ist Dominater als der Timer, möchstest du aber fast pararell Code zum bestimmten Zeit ausführen, mußt du einen weiteren Thread erzeugen.</p>
<p>Sinnvolle Anwendung des Timers: Timer wird gestartet, auslösung in 5min., anwender macht was-&gt; Timer neu starten, anwender macht 5min. lang nichts, ICQ schaltet auf Idle des Users.</p>
<p>Nicht Sinnvoll: Timer soll alle 40ms ein Bild aus einem Video laden und Anzeigen, ich lache immer wieder über diese Vorstellung <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/904239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/904239</guid><dc:creator><![CDATA[Antworteich]]></dc:creator><pubDate>Mon, 31 Oct 2005 00:08:14 GMT</pubDate></item></channel></rss>