<?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[Window messages]]></title><description><![CDATA[<p>Wie erzeuge ich ein Window dass window messages erhält?</p>
<pre><code class="language-cpp">WNDCLASS wc;
	  // Create a dummy window
	  wc.style = 0;
	  wc.lpfnWndProc = (WNDPROC)OwnWindowProc;
	  wc.cbClsExtra = 0;
	  wc.cbWndExtra = 0;
	  wc.hInstance = hInstance;
	  wc.hIcon = 0;
	  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
	  wc.lpszMenuName = 0;
	  wc.lpszClassName = _T(&quot;DummyWin&quot;);
	  RegisterClass(&amp;wc);

	  setup = CreateWindow(
		  _T(&quot;DummyWin&quot;), _T(&quot;Dummy&quot;), (DWORD)0, 
	   0, 0, 1000, 1000, 
	   NULL, NULL, hInstance, NULL);
</code></pre>
<p>Dieses Dummy window emfängt keine messages bei PostMessage..<br />
Wenn ich es visible mache gehts, aber das will ich nicht.<br />
Die message kommt von einer Dll über PostMessage(WindowHandle,MsgCode,0,0)<br />
Wenn ich direkt in der Exe das mache dann funktionierts!<br />
Wie kann ich das ändern??</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/90183/window-messages</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 23:32:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/90183.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Oct 2004 03:19:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Window messages on Wed, 27 Oct 2004 04:08:02 GMT]]></title><description><![CDATA[<p>Wie erzeuge ich ein Window dass window messages erhält?</p>
<pre><code class="language-cpp">WNDCLASS wc;
	  // Create a dummy window
	  wc.style = 0;
	  wc.lpfnWndProc = (WNDPROC)OwnWindowProc;
	  wc.cbClsExtra = 0;
	  wc.cbWndExtra = 0;
	  wc.hInstance = hInstance;
	  wc.hIcon = 0;
	  wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	  wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
	  wc.lpszMenuName = 0;
	  wc.lpszClassName = _T(&quot;DummyWin&quot;);
	  RegisterClass(&amp;wc);

	  setup = CreateWindow(
		  _T(&quot;DummyWin&quot;), _T(&quot;Dummy&quot;), (DWORD)0, 
	   0, 0, 1000, 1000, 
	   NULL, NULL, hInstance, NULL);
</code></pre>
<p>Dieses Dummy window emfängt keine messages bei PostMessage..<br />
Wenn ich es visible mache gehts, aber das will ich nicht.<br />
Die message kommt von einer Dll über PostMessage(WindowHandle,MsgCode,0,0)<br />
Wenn ich direkt in der Exe das mache dann funktionierts!<br />
Wie kann ich das ändern??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/638417</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/638417</guid><dc:creator><![CDATA[rewe]]></dc:creator><pubDate>Wed, 27 Oct 2004 04:08:02 GMT</pubDate></item><item><title><![CDATA[Reply to Window messages on Wed, 27 Oct 2004 10:05:38 GMT]]></title><description><![CDATA[<p>PostMessage funktioniert nur innerhalb des selben Threads. Willst du von einem anderen Thread eine Nachricht schicken, musst du PostThreadMessage verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/638637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/638637</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Wed, 27 Oct 2004 10:05:38 GMT</pubDate></item><item><title><![CDATA[Reply to Window messages on Wed, 27 Oct 2004 11:55:31 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>PostMessage funktioniert nur innerhalb des selben Threads. Willst du von einem anderen Thread eine Nachricht schicken, musst du PostThreadMessage verwenden.</p>
</blockquote>
<p>Wenn ich von der DLL zur EXE eine Message schicken will verwende ich PostThreadMessage ?</p>
<p>Msdn:<br />
The PostMessage function places (posts) a message in the message queue associated with the thread that created the specified window</p>
<p>Das sollte doch zum richtien Thread geschickt werden mit PostMessage, oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/638788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/638788</guid><dc:creator><![CDATA[rewe]]></dc:creator><pubDate>Wed, 27 Oct 2004 11:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to Window messages on Thu, 28 Oct 2004 01:12:48 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>PostMessage funktioniert nur innerhalb des selben Threads. Willst du von einem anderen Thread eine Nachricht schicken, musst du PostThreadMessage verwenden.</p>
</blockquote>
<p>Also, ich hab einiges probiert mittlerweile, so siehts nun aus:</p>
<p>Situation ist so:<br />
DLL die einen Mouse hook implementiert, bei einem Mouse event benachrichtigt die DLL die EXE.</p>
<pre><code class="language-cpp">LRESULT CALLBACK MouseTracker(int code, WPARAM wParam, LPARAM lParam) {

PostThreadMessage(g_dwThreadId,g_nMsgId,0,0);//Funktionierte bei mir nicht.
PostMessage(g_hWnd,g_nMsgId,0,0); //Funktioniert, aber nur wenn HWND aktiv ist, ich möchte das Window jedoch nicht VISIBLE haben.
}
</code></pre>
<p>Im MainProg habe ich eine WndProc, diese bekommt die Nachricht nur wenn ich PostMessage verwende und dabei das HWND aktiv ist.<br />
Die Nachricht muss aber immer zur WndProc gelangen, auch wenn das Window Invisible ist. Aber wie??</p>
<p>Zu CreateWindow:</p>
<pre><code class="language-cpp">HWND CreateWindow(
...
  HWND hWndParent,      // handle to parent or owner window
...
);
</code></pre>
<p>Ich gebe beim dummy window (invisible) als Parent NULL mit, richtig?</p>
<p>Wenn ich vor Postmessage einfüge:</p>
<pre><code class="language-cpp">::IsWindow(g_hWnd);
</code></pre>
<p>Es wird FALSE returned falls das Window nicht aktiviert ist, TRUE wird returned wenn es aktiviert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/638963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/638963</guid><dc:creator><![CDATA[rewe]]></dc:creator><pubDate>Thu, 28 Oct 2004 01:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to Window messages on Thu, 28 Oct 2004 01:21:33 GMT]]></title><description><![CDATA[<p>ARRRRRRGHHHHHHH!!!</p>
<pre><code class="language-cpp">static HWND g_hWnd;  //funktioniert nicht!
static HWND g_hWnd = NULL; //funktioniert problemlos!
</code></pre>
<p>Variable war nicht initialisiert, dadurch der Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/639047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/639047</guid><dc:creator><![CDATA[rewe]]></dc:creator><pubDate>Thu, 28 Oct 2004 01:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Window messages on Thu, 28 Oct 2004 10:27:59 GMT]]></title><description><![CDATA[<p>rewe schrieb:</p>
<blockquote>
<pre><code class="language-cpp">PostThreadMessage(g_dwThreadId,g_nMsgId,0,0);//Funktionierte bei mir nicht.
</code></pre>
</blockquote>
<p>Zeig mal, wo und wie du g_dwThreadId initialisierst. Und welchen Status liefert GetLastError() nach PostThreadMessage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/639256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/639256</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 28 Oct 2004 10:27:59 GMT</pubDate></item></channel></rss>