<?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[message queue leersaugen]]></title><description><![CDATA[<p>hi,<br />
ich hab' vor jahren mal ne mfc-anwendung geproggt (aber die frage ist hier, glaube ich, besser aufgehoben). und kaum noch plan von winapi usw. also es ist 'n mdi-programm wobei eins der child-windows eine menge buttons enthält. das problem ist nun: die anwendung soll für kurze zeit periodisch (für ca. 3 sekunden) keine mouse-messages bekommen, egal ob einer klickt oder nicht. ich hab's mit EnableWindow(FALSE) probiert, aber die msgs landen in der queue und werden nach dem 'enablen' des fensters abgearbeitet. frage: was ist der beste weg, um die mouse-messages zu 'schlucken'?</p>
<p>btw: zur zeit mache ich etwa folgendes</p>
<pre><code>for (;;)
{
  MSG msg;
  BOOL ret = PeekMessage (&amp;msg, 0,WM_MOUSEFIRST,WM_MOUSELAST, PM_REMOVE);
  if (ret == FALSE)
    break;
}
</code></pre>
<p>das klappt zwar, scheint mir aber nicht der tolle weg zu sein. geht es besser/einfacher?<br />
man dankt für alle tips.<br />
<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/topic/218397/message-queue-leersaugen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 03:18:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218397.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Jul 2008 15:18:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to message queue leersaugen on Sun, 20 Jul 2008 15:18:53 GMT]]></title><description><![CDATA[<p>hi,<br />
ich hab' vor jahren mal ne mfc-anwendung geproggt (aber die frage ist hier, glaube ich, besser aufgehoben). und kaum noch plan von winapi usw. also es ist 'n mdi-programm wobei eins der child-windows eine menge buttons enthält. das problem ist nun: die anwendung soll für kurze zeit periodisch (für ca. 3 sekunden) keine mouse-messages bekommen, egal ob einer klickt oder nicht. ich hab's mit EnableWindow(FALSE) probiert, aber die msgs landen in der queue und werden nach dem 'enablen' des fensters abgearbeitet. frage: was ist der beste weg, um die mouse-messages zu 'schlucken'?</p>
<p>btw: zur zeit mache ich etwa folgendes</p>
<pre><code>for (;;)
{
  MSG msg;
  BOOL ret = PeekMessage (&amp;msg, 0,WM_MOUSEFIRST,WM_MOUSELAST, PM_REMOVE);
  if (ret == FALSE)
    break;
}
</code></pre>
<p>das klappt zwar, scheint mir aber nicht der tolle weg zu sein. geht es besser/einfacher?<br />
man dankt für alle tips.<br />
<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/1550274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550274</guid><dc:creator><![CDATA[fricky]]></dc:creator><pubDate>Sun, 20 Jul 2008 15:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to message queue leersaugen on Sun, 20 Jul 2008 15:36:35 GMT]]></title><description><![CDATA[<p>Ds ist falsch, wenn ein Fenster nicht enabled ist werden keine Eingabenachrichten von Maus und Tastatur abgearbeitet und für ein Fenster empfangen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1550282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550282</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Sun, 20 Jul 2008 15:36:35 GMT</pubDate></item><item><title><![CDATA[Reply to message queue leersaugen on Mon, 21 Jul 2008 07:50:47 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Ds ist falsch, wenn ein Fenster nicht enabled ist werden keine Eingabenachrichten von Maus und Tastatur abgearbeitet und für ein Fenster empfangen!</p>
</blockquote>
<p>was bei mir offenbar nicht zu funktionieren scheint, ich habe versucht, das hauptfenster, die mdi-childs und sogar die einzelnen controls zu disablen. ja du hast recht, *während* sie disabled sind, passiert nix. aber wenn ich einen mausklick in einem disabled-en control mache und es danach wieder enable, reagiert es auf den klick (denn dieser hängt noch irgendwo in der msg-queue).</p>
<p>btw, das programm arbeitet viel mit subclassing und fängt WM_COMMAND ab, etc. vielleicht ist da der wurm drin, dass EnableWindow(FALSE) nicht tut was es soll?<br />
<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/1550687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550687</guid><dc:creator><![CDATA[fricky]]></dc:creator><pubDate>Mon, 21 Jul 2008 07:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to message queue leersaugen on Mon, 21 Jul 2008 08:09:01 GMT]]></title><description><![CDATA[<p>1. WM_COMMAND Nachrichten sind keine Maus/Keybord Nachrichten<br />
2. Disable das Main Window und gut ist!<br />
3. Wenn das Verhalten so wäre, wie Du es beschreibst. Würde ein Klick auf ds Fenster unter einem modalen Dialog nach schließen des Dialoges auch ausgefüht werden.</p>
<p>Fazit: Du Disablest die falschen Fenster...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1550703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550703</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to message queue leersaugen on Mon, 21 Jul 2008 08:27:15 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>2. Disable das Main Window und gut ist!</p>
</blockquote>
<p>schon probiert. und wie gesagt, die msgs bleiben ge-queued und werden nach dem enablen trotzdem ausgeführt.</p>
<p>Martin Richter schrieb:</p>
<blockquote>
<p>3. Wenn das Verhalten so wäre, wie Du es beschreibst. Würde ein Klick auf ds Fenster unter einem modalen Dialog nach schließen des Dialoges auch ausgefüht werden.</p>
</blockquote>
<p>das ist ja was ganz anderes.<br />
aber, naja, irgendwo muss etwas drin sein, dass den windowmanager leicht durcheinander bringt. aber was soll's. ich lass es einfach beim peekmessage-hack. der tuts ja auch.<br />
danke für deine hilfe.<br />
<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/1550717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550717</guid><dc:creator><![CDATA[fricky]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:27:15 GMT</pubDate></item><item><title><![CDATA[Reply to message queue leersaugen on Mon, 21 Jul 2008 08:31:53 GMT]]></title><description><![CDATA[<p>Martin Richter schrieb:</p>
<blockquote>
<p>Fazit: Du Disablest die falschen Fenster...</p>
</blockquote>
<p>ich versuchte das: AfxGetMainWnd()-&gt;EnableWindow(FALSE);<br />
sowie das: AfxGetApp()-&gt;m_pMainWnd-&gt;EnableWindow(FALSE);<br />
^^ beides ohne erfolg.<br />
<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/1550724</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1550724</guid><dc:creator><![CDATA[fricky]]></dc:creator><pubDate>Mon, 21 Jul 2008 08:31:53 GMT</pubDate></item></channel></rss>