<?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[Fensternachrichten abarbeiten mit GetMessage()]]></title><description><![CDATA[<p>guten tag,<br />
folgendes problem,<br />
ich habe ein programm, dass an mehreren stellen länger rechnet und da es ja schlecht aussieht, wenn das fenster lange nicht aktualisiert wird muss ich an diesen stellen die Fensternachrichten &quot;zwischendurch&quot; abarbeiten...</p>
<p>meine idee ist nun das nicht an den jeweiligen stellen zu machen, sondern einen extra thread dafür...</p>
<pre><code class="language-cpp">DWORD WINAPI ActWindowThread(LPVOID lpvoid)
{
	MSG Msg;

	while( gbAktWindows == true) //beim beenden auf false
	{
		while (GetMessage(&amp;Msg, NULL, 0, 0)) 
		{
			if (!TranslateAccelerator( hwndMain, ghAccel, &amp;Msg )) 
			{
				TranslateMessage( &amp;Msg ) ;
				DispatchMessage( &amp;Msg ) ;
			}
		}
		Sleep(10);	}

	return 0;
}
</code></pre>
<p>so mein erster ansatz, in einem ersten test funktioniert es auch...<br />
allerdings bin ich mir nicht sicher ob ich das überhaupt so machen darf,<br />
das GetMessage wird ja normalerweise im WinMain aufgerufen...</p>
<p>können die WinMain und der thread gegenseitig ausbremsen/stören ?</p>
<p>Mfg<br />
Schandi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199712/fensternachrichten-abarbeiten-mit-getmessage</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 21:58:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199712.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 06 Dec 2007 12:47:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fensternachrichten abarbeiten mit GetMessage() on Thu, 06 Dec 2007 12:47:15 GMT]]></title><description><![CDATA[<p>guten tag,<br />
folgendes problem,<br />
ich habe ein programm, dass an mehreren stellen länger rechnet und da es ja schlecht aussieht, wenn das fenster lange nicht aktualisiert wird muss ich an diesen stellen die Fensternachrichten &quot;zwischendurch&quot; abarbeiten...</p>
<p>meine idee ist nun das nicht an den jeweiligen stellen zu machen, sondern einen extra thread dafür...</p>
<pre><code class="language-cpp">DWORD WINAPI ActWindowThread(LPVOID lpvoid)
{
	MSG Msg;

	while( gbAktWindows == true) //beim beenden auf false
	{
		while (GetMessage(&amp;Msg, NULL, 0, 0)) 
		{
			if (!TranslateAccelerator( hwndMain, ghAccel, &amp;Msg )) 
			{
				TranslateMessage( &amp;Msg ) ;
				DispatchMessage( &amp;Msg ) ;
			}
		}
		Sleep(10);	}

	return 0;
}
</code></pre>
<p>so mein erster ansatz, in einem ersten test funktioniert es auch...<br />
allerdings bin ich mir nicht sicher ob ich das überhaupt so machen darf,<br />
das GetMessage wird ja normalerweise im WinMain aufgerufen...</p>
<p>können die WinMain und der thread gegenseitig ausbremsen/stören ?</p>
<p>Mfg<br />
Schandi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415806</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415806</guid><dc:creator><![CDATA[Schandmaul]]></dc:creator><pubDate>Thu, 06 Dec 2007 12:47:15 GMT</pubDate></item><item><title><![CDATA[Reply to Fensternachrichten abarbeiten mit GetMessage() on Thu, 06 Dec 2007 12:49:23 GMT]]></title><description><![CDATA[<p>Ich habe einen Gegenvorschlag - lass die Verarbeitung der Fensternachrichten im Hauptthread und lagere die Stellen, wo du &quot;länger rechnest&quot; in einen zweiten Thread aus (der am Ende mit PostMessage() mitteilt, daß er ein Ergebnis hat).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415807</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415807</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 06 Dec 2007 12:49:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fensternachrichten abarbeiten mit GetMessage() on Thu, 06 Dec 2007 13:08:34 GMT]]></title><description><![CDATA[<p>ja, ich weiß, dass problem dabei ist nur, dass das programm schon &quot;etwas&quot; umfangreich ist und an vielen stellen keine extra threads erstellt werden,</p>
<p>mit dieser idee, hatte ich gehofft mir die arbeit zu sparen, damit ich nicht an etlichen stellen das programm ändern muß...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415825</guid><dc:creator><![CDATA[Schandmaul]]></dc:creator><pubDate>Thu, 06 Dec 2007 13:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to Fensternachrichten abarbeiten mit GetMessage() on Thu, 06 Dec 2007 15:00:51 GMT]]></title><description><![CDATA[<p>ok, war ne sch*** idee...<br />
funktioniert nämlich nicht...</p>
<p>in dem thread die GetMessage wird zwar aufgerufen, aber das wars dann auch,<br />
der kommt aus der funktion nicht wieder zurück...</p>
<p>ich werds dann doch mal mit den threads umschreiben probieren ^^</p>
<p>Schandi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415923</guid><dc:creator><![CDATA[Schandmaul]]></dc:creator><pubDate>Thu, 06 Dec 2007 15:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to Fensternachrichten abarbeiten mit GetMessage() on Thu, 06 Dec 2007 15:30:47 GMT]]></title><description><![CDATA[<p>Wenn bitte PeekMessage verwenden!</p>
<p>Und bitte ganz wichtig: Dein Hauptfenster diablen, andernfalls wird Dein Programm reentrant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1415945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1415945</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 06 Dec 2007 15:30:47 GMT</pubDate></item></channel></rss>