<?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[[GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden]]></title><description><![CDATA[<p><strong>Auflösung des Threads:</strong><br />
Die Lösung dieses Threads gibt es auf dieser Seite:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-200760-and-start-is-20-and-sid-is-393a4dbe01a3d7a6a7755ab5100f4df1.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-200760-and-start-is-20-and-sid-is-393a4dbe01a3d7a6a7755ab5100f4df1.html</a><br />
Ihr müsst allerdings nach ganz unten scrollen. Es ist der Post: <em>[CLOSED]Endgültige Lösung</em><br />
Viel Spass beim perfekten Beenden</p>
<p><strong>Ursprünglischer Post:</strong><br />
Guten Tag erstmal,<br />
Was haltet ihr davon:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam,HWND hButton)
{

	switch(msg)
	{
	case WM_KEYDOWN:
         if (wParam == VK_ESCAPE)
         {
             PostMessage(hWnd,WM_DESTROY,NULL,NULL) //oder so ähnlich
         }      

         break;

	case WM_CREATE:
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, msg, wParam, lParam);
	}
	return 0;
}
</code></pre>
<p>Ich hätte gerne ein Kommentar dazu. Ich hoffe dies ist keine &quot;Unsitte&quot;. Falls schon bitte ich um Verbesserungsvorschläge.<br />
Einen anderen Vorschlag hätte ich auch noch:</p>
<pre><code class="language-cpp">//Global:
bool running = true;
//in WinMain() {}
while (running &amp;&amp; GetMessage(&amp;msg,NULL,0,0)
{
    TranslateMessage(&amp;msg);
    DispatchMessage(&amp;msg);
}
//WndProc

if(msg-&gt;wParam == VK_ESCAPE)
{
    running = false;
</code></pre>
<p>}</p>
<p>Welche der beiden Methoden findet ihr effizienter bzw. professioneller. Was ist performanter? Danke an alle!</p>
<p>P.S.: GoCODE = guter Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> bedeutet soviel wie effizienter,sauberer Code</p>
<p>EDIT:</p>
<blockquote>
<p>Selbst wenn ich in manchen Fällen &quot;Don Quichote&quot; bin, gibt es genug andere die richtige Antworten geben können. Also stelle lieber allgemein eine Frage zur Diskussion...</p>
</blockquote>
<p>Ich habe den Beitrag deinen Wünschen gemäss editiert.[u]</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200760/gocode-sendmessage-gelöst-neues-topic-perfektes-beenden</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Apr 2026 10:12:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200760.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Dec 2007 13:31:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 21:33:14 GMT]]></title><description><![CDATA[<p><strong>Auflösung des Threads:</strong><br />
Die Lösung dieses Threads gibt es auf dieser Seite:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-200760-and-start-is-20-and-sid-is-393a4dbe01a3d7a6a7755ab5100f4df1.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-200760-and-start-is-20-and-sid-is-393a4dbe01a3d7a6a7755ab5100f4df1.html</a><br />
Ihr müsst allerdings nach ganz unten scrollen. Es ist der Post: <em>[CLOSED]Endgültige Lösung</em><br />
Viel Spass beim perfekten Beenden</p>
<p><strong>Ursprünglischer Post:</strong><br />
Guten Tag erstmal,<br />
Was haltet ihr davon:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam,HWND hButton)
{

	switch(msg)
	{
	case WM_KEYDOWN:
         if (wParam == VK_ESCAPE)
         {
             PostMessage(hWnd,WM_DESTROY,NULL,NULL) //oder so ähnlich
         }      

         break;

	case WM_CREATE:
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, msg, wParam, lParam);
	}
	return 0;
}
</code></pre>
<p>Ich hätte gerne ein Kommentar dazu. Ich hoffe dies ist keine &quot;Unsitte&quot;. Falls schon bitte ich um Verbesserungsvorschläge.<br />
Einen anderen Vorschlag hätte ich auch noch:</p>
<pre><code class="language-cpp">//Global:
bool running = true;
//in WinMain() {}
while (running &amp;&amp; GetMessage(&amp;msg,NULL,0,0)
{
    TranslateMessage(&amp;msg);
    DispatchMessage(&amp;msg);
}
//WndProc

if(msg-&gt;wParam == VK_ESCAPE)
{
    running = false;
</code></pre>
<p>}</p>
<p>Welche der beiden Methoden findet ihr effizienter bzw. professioneller. Was ist performanter? Danke an alle!</p>
<p>P.S.: GoCODE = guter Code <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> bedeutet soviel wie effizienter,sauberer Code</p>
<p>EDIT:</p>
<blockquote>
<p>Selbst wenn ich in manchen Fällen &quot;Don Quichote&quot; bin, gibt es genug andere die richtige Antworten geben können. Also stelle lieber allgemein eine Frage zur Diskussion...</p>
</blockquote>
<p>Ich habe den Beitrag deinen Wünschen gemäss editiert.[u]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423213</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Fri, 21 Dec 2007 21:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 13:39:29 GMT]]></title><description><![CDATA[<p>du bist irgendwie komisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423225</guid><dc:creator><![CDATA[oO]]></dc:creator><pubDate>Wed, 19 Dec 2007 13:39:29 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 13:43:05 GMT]]></title><description><![CDATA[<p>DestroyWindow</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423229</guid><dc:creator><![CDATA[P-Poss]]></dc:creator><pubDate>Wed, 19 Dec 2007 13:43:05 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 15:44:17 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool running
</code></pre>
<p>ist quatsch<br />
dein programm wird schon merken, wenn es keine nachrichten mehr mit GetMessage bekommt - dann wurde nämlich bereits WM_QUIT gesendet <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/1423306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423306</guid><dc:creator><![CDATA[hey]]></dc:creator><pubDate>Wed, 19 Dec 2007 15:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 16:11:07 GMT]]></title><description><![CDATA[<p>oO schrieb:</p>
<blockquote>
<p>du bist irgendwie komisch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Wieso? Warum? Weshalb?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423313</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 16:14:02 GMT]]></title><description><![CDATA[<p>hey schrieb:</p>
<blockquote>
<pre><code class="language-cpp">bool running
</code></pre>
<p>ist quatsch<br />
dein programm wird schon merken, wenn es keine nachrichten mehr mit GetMessage bekommt - dann wurde nämlich bereits WM_QUIT gesendet <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>Und woher sollte WM_QUIT gesendet werden?</p>
<p>P-Poss schrieb:</p>
<blockquote>
<p>DestroyWindow</p>
</blockquote>
<p>Wie wende ich das an? Welche Parameter? Ich habe zur Zeit keine GUI bzw. WinSDK da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423314</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423314</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:14:02 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Wed, 19 Dec 2007 16:41:45 GMT]]></title><description><![CDATA[<p>Ahoi, also falls *ich* Dir nicht antworten soll, kannst Du meinen Post ja einfach ignorieren (da ich Dich ja angeblich mobbe) :p , alle anderen können ihn einfach als Antwort auf seine Frage verstehen <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>Zu Deiner Frage: Deine 'Konstruktion' ist überflüssig, da ein Aufruf von PostQuitMessage (wie der Name auch schon sagt) eben ein WM_QUIT in Deine Nachrichtenschleife einreiht. Falls GetMessage auf ein WM_QUIT trifft, sorgt das für die Rückgabe des Wertes FALSE. Und da <code>while(FALSE) { ... }</code> nicht weiter bearbeitet wird (eben weil das Abbruchkriterium der Schleife erfüllt ist), beendet sich das Programm. DestroyWindow sollte ebenfalls aufgerufen werden, da es Aufräumarbeiten durchführt (z.B. das Löschen von Timern, die mit dem Fenster assoziiert sind).</p>
<p>Das 'HWND hButton' am Ende Deiner WndProc stellt übrigens einen Fehler gegen die vorgeschriebene Syntax einer Fensterprozedur da. Das muss da weg <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="😉"
    /> - also hier:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam,HWND hButton)
</code></pre>
<p>Dann vllt noch dazu:</p>
<pre><code class="language-cpp">PostMessage(hWnd,WM_DESTROY,NULL,NULL) //oder so ähnlich
</code></pre>
<p>Wenn Du an irgendeiner Stelle dafür sorgen willst, dass sich Dein Programm beendet, mache ich das immer mit:</p>
<pre><code class="language-cpp">SendMessage(hWnd, WM_CLOSE, 0, 0);
</code></pre>
<p>Unter WM_CLOSE führe ich dann Aufräumarbeiten durch, vorher ggfs. die Frage an den Benutzer, ob er das Programm wirklich beenden will, und schließlich folgt der Aufruf von DestroyWindow. Also beispielsweise so:</p>
<pre><code class="language-cpp">// ...
case WM_CLOSE:
   if(MessageBox(hWnd, TEXT(&quot;Wollten Sie das Programm wirklich beenden?&quot;), TEXT(&quot;Wirklich beenden?&quot;), MB_YESNO | MB_ICONINFORMATION) == IDNO)
      break;
   // Hier ggfs. Clean-Up: [...]
   DestroyWindow(hWnd);
   break;
// ...
</code></pre>
<p>Der Vorteil ist, dass Aktionen, die immer vor dem Beenden des Programms durchgeführt werden müssen/sollten (-&gt; Clean-Up), immer zentral an einer Stelle codiert werden können (eben unter WM_CLOSE).</p>
<p>PS: Es wäre sinnvoll, wenn Du zusätzlich noch posten könntest, was Du erreichen willst, dass muss man sich nämlich erstmal aus Deinem Code ableiten, was ja nicht zwangsläufig erfolgreich sein muss <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/1423330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423330</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Wed, 19 Dec 2007 16:41:45 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 13:35:45 GMT]]></title><description><![CDATA[<p>Es ist eine Unsitte! <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="🕶"
    /> Wieder mal was für mein Blog.</p>
<p>WM_DESTROY ist eine interne Nachricht, die durch DestroyWindow ausgelöst wird.<br />
Auch hier hast Du nichts mit zu tun...</p>
<p>Wenn Du schon PostMessage verwendest und ein Handle hast, müsstest Du auch wissen, das man das Handle mit DestroyWindow benutzen könnte...</p>
<p>Verwende die entsprechenden API-Funktionen und die Nachricht wird vom OS versendet.</p>
<p>BTW:<br />
1. Es ist unüblich Personen in einem Forum direkt anzusprechen.<br />
2. Warum sollte ich mich besonders damit auskenne? Es gibt andere, dies es auch können?<br />
3. Wenn Du kein SDK da hast oder keine GUI, aber hier Posten kannst, dann kannst Du auch die Doku zu DestroyWindow ergoogeln, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423812</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 20 Dec 2007 13:35:45 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 14:03:52 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Es ist eine Unsitte!</p>
</blockquote>
<p>&lt;Loriot&gt;Ach was?&lt;/Loriot&gt;<br />
Es gibt also keine saubere Möglichkeit, Fenster aus anderen Threads zu schließen (DestroyWindow funktioniert hier bekannterweise nicht)? Und wenn die Microsofties das machen, dann machen sie was falsch (z.B. im Artikel <a href="http://support.microsoft.com/kb/178893/en-us" rel="nofollow">How To Terminate an Application &quot;Cleanly&quot; in Win32</a>)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423845</guid><dc:creator><![CDATA[Gästchen]]></dc:creator><pubDate>Thu, 20 Dec 2007 14:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 14:40:31 GMT]]></title><description><![CDATA[<p>Gästchen schrieb:</p>
<blockquote>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>Es ist eine Unsitte!</p>
</blockquote>
<p>&lt;Loriot&gt;Ach was?&lt;/Loriot&gt;<br />
Es gibt also keine saubere Möglichkeit, Fenster aus anderen Threads zu schließen (DestroyWindow funktioniert hier bekannterweise nicht)? Und wenn die Microsofties das machen, dann machen sie was falsch (z.B. im Artikel <a href="http://support.microsoft.com/kb/178893/en-us" rel="nofollow">How To Terminate an Application &quot;Cleanly&quot; in Win32</a>)?</p>
</blockquote>
<p>Rembrand? Bahnhof?<br />
In diesem Artikel wird <strong>WM_CLOSE</strong> versendet und nicht <strong>WM_DESTROY</strong>.</p>
<p>Nein! Man kann nicht durch versenden von WM_DESTROY erreichen was WM_DESTROY tut.</p>
<p>Es gibt sicherlich saubere Lösungen ein Fenster aus einem anderen Thread zu zerstören! Logo.<br />
Definiere eine eigene Nachricht. Sende diese an das Fenster. Baue einen Handler für dieses Fenster und diese Nachricht, oderdas Parent, der dann in dem Eigentümerthread des Fensters DestroyWindow aufruft...</p>
<p>Die Doku ist eindeutig:<br />
<a href="http://msdn2.microsoft.com/en-us/library/ms632682.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms632682.aspx</a></p>
<blockquote>
<p>A thread cannot use DestroyWindow to destroy a window created by a different thread.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1423874</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423874</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 20 Dec 2007 14:40:31 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 15:13:59 GMT]]></title><description><![CDATA[<p>Der &quot;Default-Handler (DefWindowProc)&quot; für WM_CLOSE ruft DestroyWindow () auf.<br />
Wenn man somit in der WM_CLOSE DestroyWindow () selbst aufruft, dann wird DestroyWindow () praktisch zweimal aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423898</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 15:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 15:40:29 GMT]]></title><description><![CDATA[<p>draufleger schrieb:</p>
<blockquote>
<p>Der &quot;Default-Handler (DefWindowProc)&quot; für WM_CLOSE ruft DestroyWindow () auf.<br />
Wenn man somit in der WM_CLOSE DestroyWindow () selbst aufruft, dann wird DestroyWindow () praktisch zweimal aufgerufen.</p>
</blockquote>
<p>Nicht ganz richtig. Wenn man selber in WM_CLOSE DestroyWindow aufruft dann returniert man natürlich und ruft nicht DefWindowProc auf... oder?</p>
<p>So sollte man sich verhalten, wenn man es gemäß Doku macht. :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423928</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 20 Dec 2007 15:40:29 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 16:03:40 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>In diesem Artikel wird <strong>WM_CLOSE</strong> versendet und nicht <strong>WM_DESTROY</strong>.</p>
</blockquote>
<p>Au weia, da hast Du natürlich recht, da habe ich mich aber mächtig verhauen. Ich würde jetzt gern noch etwas schlaues sagen, aber wenn man so daneben liegt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423935</guid><dc:creator><![CDATA[Gästchen]]></dc:creator><pubDate>Thu, 20 Dec 2007 16:03:40 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 16:51:28 GMT]]></title><description><![CDATA[<blockquote>
<p>2. Warum sollte ich mich besonders damit auskenne? Es gibt andere, dies es auch können?</p>
</blockquote>
<p>Du bist doch der Don Quichotte.(dein Blog)<br />
Das beantwortet auch die Frage warum ich dich direkt angesprochen habe.</p>
<blockquote>
<p>Das 'HWND hButton' am Ende Deiner WndProc stellt übrigens einen Fehler gegen die vorgeschriebene Syntax einer Fensterprozedur da. Das muss da weg - also hier: C/C++ Code:<br />
LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam,HWND hButton)</p>
</blockquote>
<p>Keine Ahnung wie das da reingekommen ist.</p>
<blockquote>
<p>Es ist eine Unsitte! Wieder mal was für mein Blog.</p>
</blockquote>
<p>Das mit dem <em>bool running</em> auch? Das habe ich aus einem Tutorial.(Spieleprogrammierung) <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>Ahoi, also falls *ich* Dir nicht antworten soll, kannst Du meinen Post ja einfach ignorieren (da ich Dich ja angeblich mobbe) , alle anderen können ihn einfach als Antwort auf seine Frage verstehen .</p>
<p>Zu Deiner Frage: Deine 'Konstruktion' ist überflüssig, da ein Aufruf von PostQuitMessage (wie der Name auch schon sagt) eben ein WM_QUIT in Deine Nachrichtenschleife einreiht. Falls GetMessage auf ein WM_QUIT trifft, sorgt das für die Rückgabe des Wertes FALSE. Und da while(FALSE) { ... } nicht weiter bearbeitet wird (eben weil das Abbruchkriterium der Schleife erfüllt ist), beendet sich das Programm. DestroyWindow sollte ebenfalls aufgerufen werden, da es Aufräumarbeiten durchführt (z.B. das Löschen von Timern, die mit dem Fenster assoziiert sind).</p>
</blockquote>
<p>Willst du mir damit sagen dass ich bei, ...</p>
<pre><code class="language-cpp">case WM_KEYDOWN:
if(wParam == 27) //Escape
{
    PostQuitMessage(0)
}
break;
</code></pre>
<p>...das hier so machen könnte: (Doppelpunkt kein Punkt. *WICHTIG* )</p>
<blockquote>
<p>Wenn Du an irgendeiner Stelle dafür sorgen willst, dass sich Dein Programm beendet, mache ich das immer mit:</p>
<pre><code class="language-cpp">SendMessage(hWnd, WM_CLOSE, 0, 0);
</code></pre>
</blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/35992">@Martin</a> Richter: Ist das auch sauber?(oder doch Unsitte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )</p>
<blockquote>
<p>Nicht ganz richtig. Wenn man selber in WM_CLOSE DestroyWindow aufruft dann returniert man natürlich und ruft nicht DefWindowProc auf... oder?</p>
<p>So sollte man sich verhalten, wenn man es gemäß Doku macht.</p>
</blockquote>
<p>Besserwisser. <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="😃"
    /> (Ich will nicht bestreiten , das stimme nicht. Es stimmt.)<br />
@Draufleger: Danke das wird mir weiterhelfen. Das bestätigt auch warum man WM_CLOSE senden sollte.</p>
<p><strong>Erstmal *DANKE* an alle. Mir scheint es so als würde halb Windows nur aus Befehlen zum Beenden zu bestehen und zeim Aufrümen und zum zerstörem.</strong> <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>P.S.: GoCODE klingt mal derbst beschis*en.( Warum hat das keine gesagt? )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423949</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Thu, 20 Dec 2007 16:51:28 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 16:58:02 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Wenn man selber in WM_CLOSE DestroyWindow aufruft dann returniert man natürlich und ruft nicht DefWindowProc auf... oder?</p>
</blockquote>
<p>Wo bleibt dann das Zusammenspiel mit dem Betriebssystem ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423957</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 16:58:02 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 16:59:09 GMT]]></title><description><![CDATA[<p>Man kann doch nicht einfach sein Fenster zerstören und dem OS mitteilen, daß WM_CLOSE abgebrochen wurde !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423958</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 16:59:09 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 17:00:11 GMT]]></title><description><![CDATA[<p>Auch wenn das in sehr vielen Dokus favorisiert wird. <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/1423960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423960</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 17:00:11 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 17:00:59 GMT]]></title><description><![CDATA[<p>Korrekt beendet wird mit der DefWindowProc der WM_CLOSE (mit einem PostQuitMessage () in der WM_DESTROY oder WM_NCDESTROY).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423962</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 17:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 17:02:06 GMT]]></title><description><![CDATA[<p>Sorry, Spamfilter ! <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1423964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423964</guid><dc:creator><![CDATA[draufleger]]></dc:creator><pubDate>Thu, 20 Dec 2007 17:02:06 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 17:02:57 GMT]]></title><description><![CDATA[<p>Wenn Du Dein Programm beenden möchtest, das ein fenster hat, dan:<br />
1. Zerstöre das Main Window mit DestroyWindow (oder sende WM_CLOSE wenn es sein muss).<br />
2. Im WM_DESTROY Handler platziere ein PostQuitMessage.</p>
<p>PostQuitMessage sollte nur im Response auf die Zerstörung des Main Windows gesendet werden....</p>
<p>Selbst wenn ich in manchen Fällen &quot;Don Quichote&quot; bin, gibt es genug andere die richtige Antworten geben können. Also stelle lieber allgemein eine Frage zur Diskussion...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1423965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1423965</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Thu, 20 Dec 2007 17:02:57 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Thu, 20 Dec 2007 18:46:19 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Selbst wenn ich in manchen Fällen &quot;Don Quichote&quot; bin, gibt es genug andere die richtige Antworten geben können. Also stelle lieber allgemein eine Frage zur Diskussion...</p>
</blockquote>
<p>Habe ich gemacht.<br />
Zusammenfassend ist zu sagen: Wenn ich mein Programm von einer beliebigen Stelle des Programmmes beenden möchte z.B.: Per Escapetastendruck dann schaut meine Window Procedure wie folgt aus:</p>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProcedure(HWND hWindow,HINSTANCE hInstance,WPARAM wParam,LPARAM lParam,unsigned int message)
{
    switch(message)
    {
    case WM_KEYDOWN:
    DestroyWindow(hWindow)
    break;

    case WM_DESTROY:
    PostQuitMessage(wParam); // Das Programm wird mit der gedrückten Taste beendet
                             // bzw um korrekt zu sein: Der virtuelle 
                             // Tastencode der gedrückten Taste wird als
                             // Exitcode verwendet. Zufrieden? 
    break;
    }
}
</code></pre>
<p>Richtig so?(Und ja ich weis das man jede andere Botschaft an Windows via DefWindowProc weiterleiten muss. <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/1424015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424015</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Thu, 20 Dec 2007 18:46:19 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 00:55:56 GMT]]></title><description><![CDATA[<p>Ja, kannst Du so machen (Dir ist aber schon klar, das bei dem Code, Dein Fenster bei jeder Taste beendet wird, oder? Nicht nur bei Escape <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>Hoffe, Du hälst mich für kompetent genug <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="😃"
    /> ... falls nicht frag am besten nochmal Martin, oder er bescheinigt mir ausreichende Kompetenzen zur Beantwortung Deiner Fragen <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="😃"
    /> - dann kannst Du Dir auch ganz sicher sein *grinz*.</p>
<p>PS: Das, im Aufruf von PostQuitMessage, angegebene 'wParam' als Parameter ist falsch, siehe: <a href="http://msdn2.microsoft.com/en-us/library/ms632620.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms632620.aspx</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<p>MSDN zu WM_DESTROY schrieb:</p>
<blockquote>
<p><strong>Parameters:</strong></p>
<ul>
<li>wParam: This parameter is not used. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></li>
<li>lParam: This parameter is not used.</li>
</ul>
</blockquote>
<p>EDIT: Das ist jawohl n Witz oder:</p>
<p>C-Chris schrieb:</p>
<blockquote>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProcedure(HWND hWindow,HINSTANCE hInstance,WPARAM wParam,LPARAM lParam,unsigned int message)
</code></pre>
</blockquote>
<p>Dazu sag ich jetzt mal nix... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424218</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 21 Dec 2007 00:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 13:12:13 GMT]]></title><description><![CDATA[<p>CodeFinder schrieb:</p>
<blockquote>
<p>Ja, kannst Du so machen (Dir ist aber schon klar, das bei dem Code, Dein Fenster bei jeder Taste beendet wird, oder? Nicht nur bei Escape <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>Hoffe, Du hälst mich für kompetent genug <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="😃"
    /> ... falls nicht frag am besten nochmal Martin, oder er bescheinigt mir ausreichende Kompetenzen zur Beantwortung Deiner Fragen <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="😃"
    /> - dann kannst Du Dir auch ganz sicher sein *grinz*.</p>
<p>PS: Das, im Aufruf von PostQuitMessage, angegebene 'wParam' als Parameter ist falsch, siehe: <a href="http://msdn2.microsoft.com/en-us/library/ms632620.aspx" rel="nofollow">http://msdn2.microsoft.com/en-us/library/ms632620.aspx</a> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<p>MSDN zu WM_DESTROY schrieb:</p>
<blockquote>
<p><strong>Parameters:</strong></p>
<ul>
<li>wParam: This parameter is not used. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /></li>
<li>lParam: This parameter is not used.</li>
</ul>
</blockquote>
<p>EDIT: Das ist jawohl n Witz oder:</p>
<p>C-Chris schrieb:</p>
<blockquote>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProcedure(HWND hWindow,HINSTANCE hInstance,WPARAM wParam,LPARAM lParam,unsigned int message)
</code></pre>
</blockquote>
<p>Dazu sag ich jetzt mal nix... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>*LOL* einmal habe ich sowas von RECHT. Ich sage nur <em>&quot;this Parameter is not used&quot;</em> . Den Parameter übergebe ich und er ist von WM_KEYDOWN benützt. Er übergibt nähmlich den Virtuellen Tastencode der gedrückten Taste und ja mir ist schon klar, dass ich bei jeder Taste das Programm beende. Wie kommst du darauf: wParam von &quot;WM_DESTROY&quot;?!(Davon ist hier garnicht die Rede <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 was gibt es an meiner WindowProcedure zu meckern :p<br />
EDIT: Ich sollte vielleicht noch schreiben, dass ich das wParam das durch einen Tastendruck in &quot;g_wLastKeyDownParam&quot; speichere.<br />
Würde dann in etwas so aussehen:</p>
<pre><code class="language-cpp">//Global:
WPARAM g_wLastKeyDownParam;
//WindowProc:
case WM_KEYDOWN:
g_wLastKeyDownParam = wParam;
SendMessage(hWindow,WM_DESTROY,NULL,NULL);
break;

case WM_DESTROY:
PostQuitMessage(g_wLastKeyDownParam);
break;
</code></pre>
<p>Das hier war nur zur Vollständigkeit. Damit auch CodeFiner es versteht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
Und CodeFinder was sagst du nun? Ach ja und vielleicht muss ich den <em>wParam</em> Datentyp noch in einen <em>Integer</em> umwandeln(Für <em>PostQuitMessage</em>). Ich habe kein SDK da um das auszuprobieren. Wahrscheinlich ist WPARAM nur ein typedef...habe da aber keine Ahnung <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="😃"
    /><br />
<strong>Es wäre nett wenn du schreibst: <em>&quot;Ja stimmt! &quot;</em>.</strong></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424381</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Fri, 21 Dec 2007 13:12:13 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 14:20:53 GMT]]></title><description><![CDATA[<p>C-Chris schrieb:</p>
<blockquote>
<p>Und was gibt es an meiner WindowProcedure zu meckern :p</p>
</blockquote>
<p>Sie ist falsch.</p>
<p>C-Chris schrieb:</p>
<blockquote>
<p>Wie kommst du darauf: wParam von &quot;WM_DESTROY&quot;?!(Davon ist hier garnicht die Rede <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>
</blockquote>
<p>Tja, Eigentor. Doch davon ist die Rede, vergleiche mal Deinen eigenen (von Dir geposteten) Code:</p>
<p>C-Chris schrieb:</p>
<blockquote>
<pre><code class="language-cpp">LRESULT CALLBACK WindowProcedure(HWND hWindow,HINSTANCE hInstance,WPARAM wParam,LPARAM lParam,unsigned int message)
{
    switch(message)
    {
    case WM_KEYDOWN:
    DestroyWindow(hWindow)
    break;

    case WM_DESTROY:
    PostQuitMessage(wParam); // Das Programm wird mit der gedrückten Taste beendet
                             // bzw um korrekt zu sein: Der virtuelle
                             // Tastencode der gedrückten Taste wird als
                             // Exitcode verwendet. Zufrieden?
    break;
    }
}
</code></pre>
</blockquote>
<p>Das wParam *muss* also in Bezug von WM_DESTROY verwendet worden sein, da ist nur als Parameter Deine WndProc definiert ist, sonst nicht. Hättest Du hier direkt Dein 'g_wLastKeyDownParam' eingefügt, wäre die Sache klar gewesen.</p>
<p>C-Chris schrieb:</p>
<blockquote>
<pre><code class="language-cpp">case WM_KEYDOWN:
g_wLastKeyDownParam = wParam;
SendMessage(hWindow,WM_DESTROY,NULL,NULL);
break;
</code></pre>
</blockquote>
<p>Uff, sagmal, hast Du Dir durchgelesen, was Martin Dir erklärt hat?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>C-Chris schrieb:</p>
<blockquote>
<p><strong>Es wäre nett wenn du schreibst: <em>&quot;Ja stimmt! &quot;</em>.</strong></p>
</blockquote>
<p>Würde ich gerne...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424461</guid><dc:creator><![CDATA[CodeFinder]]></dc:creator><pubDate>Fri, 21 Dec 2007 14:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 14:34:13 GMT]]></title><description><![CDATA[<p>Oh mein Gott. <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="😉"
    /><br />
Dann eben:</p>
<pre><code class="language-cpp">//Global:
WPARAM g_wPrevParam;
//WndProc:
case WM_KEYDOWN:
DestroyWindow(hWindow);
g_wPrevParam = wParam;
break;

case WM_DESTROY:

PostQuitMessage(g_wPrevParam);
break;
</code></pre>
<p>So richtig? Noch was? Was gibst an meiner WndProc auszusetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424474</guid><dc:creator><![CDATA[C-Chris]]></dc:creator><pubDate>Fri, 21 Dec 2007 14:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to [GoCODE]SendMessage[GELÖST] Neues Topic: Perfektes Beenden on Fri, 21 Dec 2007 15:03:32 GMT]]></title><description><![CDATA[<p>Deine &quot;WndProc&quot; (als __stdcall) mit -5- Parametern entfernt immer -5- Parameter kurz vor Funktionsende vom Stack.<br />
Das Betriebssystem ruft sie aber mit nur -4- Parametern auf.<br />
Früher oder später verursacht die &quot;WndProc&quot; mit -5- Parametern einen fetten Stackfault. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1424495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1424495</guid><dc:creator><![CDATA[tiefstapler]]></dc:creator><pubDate>Fri, 21 Dec 2007 15:03:32 GMT</pubDate></item></channel></rss>