<?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 nach abgelaufener Zeit beenden ?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich möchte gerne ein Modales Dialog das geöffnet wurde in 60 sec automatisch schließen lassen.</p>
<p>Ich erstelle mir einen Thread, der beim aufruf des Dialoges gestartet wird und in einer Schleife (60 mal) runter gezählt wird.</p>
<p>Nach beendigung der Schleiffe mache ich ein OnOK().</p>
<p>Dort bekomme ich aber einen Runtime Error. Mit OnCancel() klappt das. Dann schließt sich mein Dailag aber nicht.</p>
<pre><code class="language-cpp">void CDialogWarten::thrRun()
{
	int i;
	int m_iZaehlerZurueck = m_iDauer;
	for(i = 0; i &lt;= m_iDauer; i++)
	{
		std::string m_strText = &quot;Dialog wird in 60 sec. beendet !&quot;;
		m_AnsageText.SetWindowText(m_strText.c_str());
		m_ProcessWarten.SetPos(CUtil::fProzentAnteil(m_iDauer,i));

		m_iZaehlerZurueck--;
		Sleep(1000);
	}
}
</code></pre>
<p>Kann mir jemand helfen ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/83522/dialog-nach-abgelaufener-zeit-beenden</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 17:04:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/83522.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 21 Aug 2004 17:04:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Sat, 21 Aug 2004 17:04:46 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich möchte gerne ein Modales Dialog das geöffnet wurde in 60 sec automatisch schließen lassen.</p>
<p>Ich erstelle mir einen Thread, der beim aufruf des Dialoges gestartet wird und in einer Schleife (60 mal) runter gezählt wird.</p>
<p>Nach beendigung der Schleiffe mache ich ein OnOK().</p>
<p>Dort bekomme ich aber einen Runtime Error. Mit OnCancel() klappt das. Dann schließt sich mein Dailag aber nicht.</p>
<pre><code class="language-cpp">void CDialogWarten::thrRun()
{
	int i;
	int m_iZaehlerZurueck = m_iDauer;
	for(i = 0; i &lt;= m_iDauer; i++)
	{
		std::string m_strText = &quot;Dialog wird in 60 sec. beendet !&quot;;
		m_AnsageText.SetWindowText(m_strText.c_str());
		m_ProcessWarten.SetPos(CUtil::fProzentAnteil(m_iDauer,i));

		m_iZaehlerZurueck--;
		Sleep(1000);
	}
}
</code></pre>
<p>Kann mir jemand helfen ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587883</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Sat, 21 Aug 2004 17:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Sat, 21 Aug 2004 17:10:32 GMT]]></title><description><![CDATA[<p>Versuchs mal mit :</p>
<pre><code>PostMessage(WM_CLOSE);
</code></pre>
<p>Gruß<br />
:: NoName ::</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587887</guid><dc:creator><![CDATA[__NoName__]]></dc:creator><pubDate>Sat, 21 Aug 2004 17:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Sat, 21 Aug 2004 17:49:53 GMT]]></title><description><![CDATA[<p>Was spricht denn gegen die Verwendung einers Timers ? Die schicken nämlich genau nach Ablauf einer vorgegebenen Zeitspanne eine Message und tun damit (vermutlich) genau das was willst.</p>
<p>mfg JJ</p>
]]></description><link>https://www.c-plusplus.net/forum/post/587926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/587926</guid><dc:creator><![CDATA[John Doe]]></dc:creator><pubDate>Sat, 21 Aug 2004 17:49:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 06:58:46 GMT]]></title><description><![CDATA[<p>Vielen Dank,</p>
<p>Also das mit der</p>
<pre><code class="language-cpp">PostMessage(WM_CLOSE);
</code></pre>
<p>klappt, allerdings sendet er mir kein OnOK().</p>
<p>Ich brauche dies, dass ich weis wann das Dialog geschloßen wurde, dass ich darauf regieren kamm.</p>
<p>Wie bekomme ich es jetzt hin, dass er ein OnOK() macht ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/588777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588777</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Mon, 23 Aug 2004 06:58:46 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 07:03:46 GMT]]></title><description><![CDATA[<p>Entweder OnOK direkt aufrufen oder SendMessage(MAKEWPARAM(IDOK,WM_COMMAND)); Außerdem wäre die Verwendung eines Timers etwas angebrachter, das wurde auch bereits erwähnt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/588780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588780</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 23 Aug 2004 07:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 08:46:13 GMT]]></title><description><![CDATA[<p>Also Ok, ich habe mich übereden lassen und habe jetzt einen Timer eingesetzt.</p>
<p>Jetzt habe ich allerdings das Problem, dass ich im Dialog nirgens was bestätigen kann, weil der Timer mir dies sperrt.<br />
Also läuft er durch.</p>
<p>Starten tue ich Ihn in</p>
<pre><code class="language-cpp">BOOL CDialogWarten::OnInitDialog()
{
	CDialog::OnInitDialog();
         m_iDauer = 10;
	SetTimer(1, 100, NULL); // 1/10 Sekunde

         return TRUE;
}
</code></pre>
<p>Dann rufe ich den Timer auf und lasse Ihn einmal durchlaufen.</p>
<pre><code class="language-cpp">void CDialogWarten::OnTimer(UINT nIDEvent)
{
	// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein, und/oder benutzen Sie den Standard.

	int m_iZaehlerZurueck = m_iDauer;
	for(int i = 0; i &lt;= m_iDauer; i++)
	{
		std::string m_strText = &quot;Der Process in &quot; + CUtil::fIntinSTDString(m_iZaehlerZurueck) + &quot; sec. beendet !&quot;;
		m_AnsageText.SetWindowText(m_strText.c_str());
		m_ProcessWarten.SetPos(CUtil::fProzentAnteil(m_iDauer,i));

		m_iZaehlerZurueck--;

		Sleep(1000);
	}
	CDialog::OnOK();
}
</code></pre>
<p>Ich möcht aber, dass der User dies beenden kann...</p>
<p>Wie mache ich das ??</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/588864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588864</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Mon, 23 Aug 2004 08:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 08:59:44 GMT]]></title><description><![CDATA[<p>Warum nimmst du als Zeit nicht eine Sekunde statt einer Zehntel.</p>
<p>Der Timer sendet Nachrichten und die Maus und Tastatur auch. Wenn du die Nachrichtenschleife vollstopfen läßt ist es kein Wunder, wenn der Dialog nicht mehr reagiert. <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/588879</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588879</guid><dc:creator><![CDATA[estartu]]></dc:creator><pubDate>Mon, 23 Aug 2004 08:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 09:02:39 GMT]]></title><description><![CDATA[<p>Weg mit Sleep und der Schleife! Bei jeder WM_TIMER Nachricht in- bzw. dekrementierst du deinen Counter und wenn die gewünschte Anzahl der Sekunden erreicht ist oder überschritten wird, killst du den Timer und rufst OnOK auf:</p>
<pre><code class="language-cpp">//OnTimer

if (++sec &gt;= 60 {
    KillTimer(/* ... */);
    OnOK();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/588882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588882</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 23 Aug 2004 09:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dialog nach abgelaufener Zeit beenden ? on Mon, 23 Aug 2004 09:52:18 GMT]]></title><description><![CDATA[<p>Vielen Dank,</p>
<p>jetzt hat es gefunzt..</p>
<p>Gruß<br />
andy_mann</p>
]]></description><link>https://www.c-plusplus.net/forum/post/588926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/588926</guid><dc:creator><![CDATA[andy_mann]]></dc:creator><pubDate>Mon, 23 Aug 2004 09:52:18 GMT</pubDate></item></channel></rss>