<?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[Problem mit Windowsnachrichten]]></title><description><![CDATA[<p>Moin,</p>
<p>ich könnte grade die Hilfe von euch gebrauchen.<br />
Es geht um die Windowsnachrichten, um genau zu sein geht es um WM_ACTIVATE und WM_MOUSEWHEEL.</p>
<p>Bei WM_MOUSEWHEEL lässt sich das Problem recht einfach schildern. Es ist schlichtweg nicht bekannt. Ich habe windows.h included und auch wenn ich winuser.h include ändert sich nichts daran.</p>
<p>Bei WM_ACTIVATE verhält sich das etwas anders. Es scheint so, als würde mein Fenster, aus welchem Grund auch immer, diese Nachricht nicht bekommen. Egal ob ich mit Alt+Tab rausspringe oder mittels Windows+D oder Windows+M auf den Desktop wechsle oder alles minimiere. Es kommt einfach keine WM_ACTIVATE Nachricht an.</p>
<p>Ich hab das ganze auf Basis eines Konsolenprogramms geschrieben mit VC6. Die Konsole benutz ich lediglich als direkte Debugausgabe. Fensternachrichten wie WM_KEYDOWN, WM_KEYUP und WM_MOUSEMOVE kommen an, nur die obigen beiden machen Probleme.</p>
<p>Ich hoffe ihr könnt mir irgendwie helfen und bedanke mich schonmal im vorraus. Falls ihr noch irgendwas an Informationen braucht, werde ich die Nachreichen.</p>
<p>MfG,<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/211958/problem-mit-windowsnachrichten</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Apr 2026 20:37:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/211958.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Apr 2008 14:57:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Tue, 29 Apr 2008 14:57:48 GMT]]></title><description><![CDATA[<p>Moin,</p>
<p>ich könnte grade die Hilfe von euch gebrauchen.<br />
Es geht um die Windowsnachrichten, um genau zu sein geht es um WM_ACTIVATE und WM_MOUSEWHEEL.</p>
<p>Bei WM_MOUSEWHEEL lässt sich das Problem recht einfach schildern. Es ist schlichtweg nicht bekannt. Ich habe windows.h included und auch wenn ich winuser.h include ändert sich nichts daran.</p>
<p>Bei WM_ACTIVATE verhält sich das etwas anders. Es scheint so, als würde mein Fenster, aus welchem Grund auch immer, diese Nachricht nicht bekommen. Egal ob ich mit Alt+Tab rausspringe oder mittels Windows+D oder Windows+M auf den Desktop wechsle oder alles minimiere. Es kommt einfach keine WM_ACTIVATE Nachricht an.</p>
<p>Ich hab das ganze auf Basis eines Konsolenprogramms geschrieben mit VC6. Die Konsole benutz ich lediglich als direkte Debugausgabe. Fensternachrichten wie WM_KEYDOWN, WM_KEYUP und WM_MOUSEMOVE kommen an, nur die obigen beiden machen Probleme.</p>
<p>Ich hoffe ihr könnt mir irgendwie helfen und bedanke mich schonmal im vorraus. Falls ihr noch irgendwas an Informationen braucht, werde ich die Nachreichen.</p>
<p>MfG,<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500618</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Tue, 29 Apr 2008 14:57:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Tue, 29 Apr 2008 15:01:38 GMT]]></title><description><![CDATA[<p>Letztes für VC6 verfügbare Platform SDK installiert und WINVER richtig gesetzt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500622</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500622</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Tue, 29 Apr 2008 15:01:38 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Tue, 29 Apr 2008 17:04:12 GMT]]></title><description><![CDATA[<p>Ok, einen Blick in die betreffende Headerdatei hätte ich schon werfen können, aber danke für den Hinweis <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>
<p>Damit wäre das Problem mit WM_MOUSEWHEEL beseitigt, nur das Problem mit WM_ACTIVATE besteht noch. WM_ACTIVATE ist dem Compiler bekannt, aber ich bekomme keine betreffende Nachricht.</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500706</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Tue, 29 Apr 2008 17:04:12 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Tue, 29 Apr 2008 17:41:37 GMT]]></title><description><![CDATA[<p>Dein Child bekommt auch WM_ACTIVATE nicht. Nur das Frame.</p>
<p>Verwende Spy++ und schau wer die Nachricht erhält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500719</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Tue, 29 Apr 2008 17:41:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Tue, 29 Apr 2008 21:07:56 GMT]]></title><description><![CDATA[<p>Achso, also landen die WM_ACTIVATE Nachrichten beim Konsolenfenster, das ich zu Debugausgabe noch geöffnet hab? (Ist laut Projekt auch ein Konsolenprogramm)</p>
<p>Wenn ich das richtig verstanden habe, reicht es dann wenn ich als Projekt eine Win32 Applikation erstelle und da das Fenster erstelle, um die Nachricht an das Fenster zu bekommen?</p>
<p>//EDIT:</p>
<p>Es gibt 2 Möglichkeiten, entweder ich kann mit Spy++ nicht umgehen, oder mein Programm lügt mich an <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>
<p>Laut Spy++ kommt eine WM_ACTIVATE, WM_ACTIVATEAPP und WM_KILLFOCUS an das Fenster an. Ich hab das auch einmal bei einem Win32 Projekt versucht. Auch hier kommen laut Spy++ die Windowsnachrichten an, nur leider scheint das Programm nichts davon zu wissen...</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500726</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Tue, 29 Apr 2008 21:07:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 06:04:52 GMT]]></title><description><![CDATA[<p>Ist das ein Konsolenprogramm? Dann werden diese vom OS behandelt.<br />
Nur Winodws UI Programm erhalten über die Fensterprozedur diese Nachrichten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1500921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1500921</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 30 Apr 2008 06:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 10:20:37 GMT]]></title><description><![CDATA[<p>Ja, zu Debugzwecken hab ich ein Konsolenprogramm erstellt, welches mir dann das Fenster erstellt. Es ging mir lediglich um die Möglichkeit etwaige Meldungen in dem Konsolenfenster ausgeben zu lassen, um zu sehen was grade eigentlich passiert.</p>
<p>Zu Testzwecken hab ich jetzt noch ein Win32 Programm erstellt. Aber auch hier bekommt mein Fenster keine WM_ACTIVATE Nachricht.<br />
Kann es an der Art der Fenstererstellung liegen? Ich muss zugeben, dass ich noch nie mit CreateWindow gearbeitet hab. Muss ich bestimmte Flags übergeben?</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501070</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Wed, 30 Apr 2008 10:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 10:34:47 GMT]]></title><description><![CDATA[<p>Vergiss doch dann bitte die Consolen Anwendung und erzeuge immer eine entsprechende UI.</p>
<p>Entweder Du arbeitest mit der Console, oder eben mit einem Windows Programmm. Beides zu mischen ist Unsinnn und in vieler Hinsicht geht dann einiges nicht so wie Du Dir das denkst. Siehe WM_ACTIVATE...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501084</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Wed, 30 Apr 2008 10:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 13:58:14 GMT]]></title><description><![CDATA[<p>Ich hab ja noch ein Win32 Programm erstellt und binde da meine Fensterklasse ein. Da sollte dann nichts mehr, was auch nur irgendwie mit Konsole zutun hat, enthalten sein. Aber auch hier gibt es diese Nachricht nicht.</p>
<p>Oder irre ich mich und ein &quot;Win32-Anwendung&quot; Projekt ist nicht das was du meinst?<br />
In der Schule arbeiten wir nur mit dem MFC-Anwendungsassistenten, deswegen kenn ich mich nicht so sehr mit den anderen Optionen aus.</p>
<p>MfG und vielen Dank für deine Geduld,<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501221</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501221</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Wed, 30 Apr 2008 13:58:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 14:13:27 GMT]]></title><description><![CDATA[<p>Also ich kriege auch bei ner Konsolen-App die WM_ACTIVATE. Und ja, &quot;Win32-App&quot; wird das sein, was Martin meint.</p>
<p>edit: Einfach mal den Source dazu, wenn das bei dir nicht funktioniert, ist was faul</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;

const char* WNDCLASSNAME = &quot;bla&quot;;

LRESULT CALLBACK WinProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
	switch ( Msg )
	{
		case WM_CLOSE:
		{
			PostQuitMessage( 0 );
			break;
		}

		case WM_ACTIVATE:
		{
			std::cout &lt;&lt; &quot;activated..&quot; &lt;&lt; std::endl;
		} break;
	}
	return DefWindowProc( hWnd, Msg, wParam, lParam );
}

//int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ){
int main(){	HINSTANCE hInstance = GetModuleHandle(NULL);

	MSG Msg;
	WNDCLASSEX ex;

	ZeroMemory( &amp;ex, sizeof( WNDCLASSEX ) );
	ex.cbSize = sizeof(WNDCLASSEX);
	ex.style = CS_HREDRAW|CS_VREDRAW|CS_OWNDC;
	ex.lpfnWndProc = WinProc;
	ex.hInstance = hInstance;
	ex.hIcon = LoadIcon( NULL, IDI_APPLICATION );
	ex.hCursor = LoadCursor( NULL, IDC_ARROW );
	LOGBRUSH lb = { BS_SOLID, GetSysColor(COLOR_3DFACE), 0 };
	ex.hbrBackground = CreateBrushIndirect( &amp;lb );
	ex.lpszClassName = WNDCLASSNAME;
	RegisterClassEx(&amp;ex);

	HWND hWnd = CreateWindowEx( NULL, WNDCLASSNAME, &quot;Window&quot;, WS_OVERLAPPEDWINDOW, 0, 0, 300, 300, NULL, NULL, hInstance, NULL );
	ShowWindow( hWnd, SW_SHOW );
	UpdateWindow( hWnd );

	while ( 1 )
	{
		GetMessage( &amp;Msg, NULL, 0, 0 );
		if ( Msg.message == WM_QUIT )
			break;
		TranslateMessage( &amp;Msg );
		DispatchMessage( &amp;Msg );
	}
	UnregisterClass( WNDCLASSNAME, hInstance );
	return Msg.lParam;
}
</code></pre>
<p>edit2: Getestet mit MS VS 2003, Release &amp; Debug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501227</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 30 Apr 2008 14:13:27 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 15:30:35 GMT]]></title><description><![CDATA[<p>Ok, vielen Dank, das hat mir einerseits das Brett vom Kopf weggeschlagen und andererseits ein neues festgenagelt... <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>
<p>Ich hab bisher alle Nachrichten in meiner eigenen Funktion behandelt, d.h. ich hab simpel per GetMessage() auf eine Nachricht gewartet und dann die MSG Struktur mit der erhaltenen Nachricht in meine Funktion übergeben.</p>
<p>Dies klappt aber scheinbar nicht immer. Bei, wie ich feststellen musste, einigen Nachrichten gibt es Probleme. Ich hab jetzt einfach probiert, ob das Ganze mit TranslateMessage() und DispatchMessage() auch passiert...</p>
<p>Das komische ist, in meiner WndProc() kommt die WM_ACTIVATE Nachricht an. Das bringt mir aber Nichts, da ich von der WndProc nicht auf die Memberfunktion der Fensterklasse zugreifen kann.</p>
<p>Ich weiß jetzt nicht ob ich mich freuen soll oder nicht <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>
<p>Was aber auch merkwürdig ist, ist das hier:</p>
<p>(main)</p>
<pre><code class="language-cpp">while(GetMessage(&amp;msg,NULL,0,0))  
{
	if(msg.message==WM_ACTIVATE) printf(&quot;activate&quot;);
	TranslateMessage(&amp;msg);
	DispatchMessage(&amp;msg);
}
</code></pre>
<p>(WndProc)</p>
<pre><code class="language-cpp">LRESULT CALLBACK CDevice::WndProc(HWND Wnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	if(uMsg==WM_ACTIVATE) printf(&quot;aktiv...&quot;);

	return DefWindowProc(Wnd,uMsg,wParam,lParam);
}
</code></pre>
<p>Es wird nur das &quot;aktiv...&quot; der WndProc ausgegeben, aber nicht das &quot;activate&quot; der main. Kann mir das einer erklären? Ich versteh das nicht...</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1501285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501285</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Wed, 30 Apr 2008 15:30:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Wed, 30 Apr 2008 17:39:19 GMT]]></title><description><![CDATA[<p><a href="http://www.laser.ru/evgen/articles/ARTofOS2/aos2p_11.html" rel="nofollow">Hier</a> steht was zu Nachrichten beim Selektieren von einem Fenster - evtl bringt dir statt WM_ACTIVATE auch z.B. WM_SETFOCUS was?<br />
Wie man eine nicht-statische WndProc in einer Klasse hinbekommt, dazu gibt's hier im Forum übrigens einige Beiträge, musste mal suchen oder in die FAQ gucken <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/1501359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1501359</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 30 Apr 2008 17:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Thu, 08 May 2008 07:10:04 GMT]]></title><description><![CDATA[<p>Sorry erstmal das ich mich hier nicht mehr hab blicken lassen, aber es gab ein paar kleine Probleme...</p>
<p>Jedenfalls hab ich mir die Sache mit WM_ACTIVATE mal genauer angesehen, d.h. ich hab überprüft mit welchem Wert die Nachricht in meinen MessageHandler ankommt. Da gibt es jetzt ein Problem, der Wert von WM_ACTIVATE ist 257, der selbe Wert wie WM_KEYUP.</p>
<p>Ich hab schon am Anfang des Projektes im Forum danach gesucht, wie man eine WndProc in eine Klasse integrieren kann. Bin auch fündig geworden und hab es damit versucht einen Pointer per SetWindowLong bei WM_CREATE zu speichern und bei den anderen Nachrichten mit GetWindowLong zu laden. Das hat zwar auch anfangs geklappt, aber irgendwann hab ich rausgefunden, das die Werte in der Klasse nicht die waren, die sie sein sollten. Scheinbar hat da irgendwas bei der Übergabe nicht geklappt...<br />
(Zudem wurde es durch das gecaste, zumindest auf meinem Rechner, ziemlich langsam...)</p>
<p>Gibt es sonst noch irgendwelche Ideen? Mich verwirrt das einfach nur noch...</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505267</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Thu, 08 May 2008 07:10:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Thu, 08 May 2008 08:03:06 GMT]]></title><description><![CDATA[<p>Sorry, Doppelpost...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505301</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Thu, 08 May 2008 08:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Thu, 08 May 2008 08:10:53 GMT]]></title><description><![CDATA[<p>-Shelling- schrieb:</p>
<blockquote>
<p>Jedenfalls hab ich mir die Sache mit WM_ACTIVATE mal genauer angesehen, d.h. ich hab überprüft mit welchem Wert die Nachricht in meinen MessageHandler ankommt. Da gibt es jetzt ein Problem, der Wert von WM_ACTIVATE ist 257, der selbe Wert wie WM_KEYUP.</p>
</blockquote>
<p>Also bei mir ist WM_ACTIVATE==0x0006 und WM_KEYUP 0x0101 (257), hast du dich da vielleicht vertan?</p>
<p>-Shelling- schrieb:</p>
<blockquote>
<p>Ich hab schon am Anfang des Projektes im Forum danach gesucht, wie man eine WndProc in eine Klasse integrieren kann. Bin auch fündig geworden und hab es damit versucht einen Pointer per SetWindowLong bei WM_CREATE zu speichern und bei den anderen Nachrichten mit GetWindowLong zu laden. Das hat zwar auch anfangs geklappt, aber irgendwann hab ich rausgefunden, das die Werte in der Klasse nicht die waren, die sie sein sollten. Scheinbar hat da irgendwas bei der Übergabe nicht geklappt...<br />
(Zudem wurde es durch das gecaste, zumindest auf meinem Rechner, ziemlich langsam...)</p>
</blockquote>
<p>Eigentlich dürfte es zu keinen größeren Geschwindigkeits-Einbußen kommen, zeig doch mal ein wenig Code <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="😉"
    /> Achso, und hast du bei RegisterClass(Ex) auch angegeben, dass du zum Fenster User-Daten brauchst (WNDCLASS::cbWndExtra &gt;= 4)?</p>
<p>Und sonst kannst du in deiner Fenster-Klasse evtl auch eine statische map HWND-&gt;WndClass* einsetzen, spätestens da dürfte von wegen Geschwindigkeit nichts mehr zu merken sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505310</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Thu, 08 May 2008 08:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Windowsnachrichten on Thu, 08 May 2008 17:07:13 GMT]]></title><description><![CDATA[<blockquote>
<p>hast du bei RegisterClass(Ex) auch angegeben, dass du zum Fenster User-Daten brauchst (WNDCLASS::cbWndExtra &gt;= 4)?</p>
</blockquote>
<p>Hab grad nachgesehen, nein hab ich nicht <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 />
Werd ich dann schnellstmöglich ändern, danke <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="🙂"
    /><br />
Geh ich richtig in der Annahme das die Zahl die Größe des Speichers in Byte ist?</p>
<p>Der Code der alten WndProc existiert leider nicht mehr, aber ich hatte den Cast wenn ich mich recht erinner in jedem Case-Zweig im switch(uMsg).</p>
<p>So kann ich jetzt aber auch alles wieder auf die WndProc umstellen. Gibt es vll auch eine Möglichkeit die Windowsnachrichten außerhalb der main zu empfangen? Bisher bekamen GetMessage und PeekMessage nur Nachrichten wenn sie in der main standen. Sobald ich die in einer anderen Funktion hatte, kam nichts mehr.</p>
<p>//EDIT:</p>
<p>So, hab meinen Code jetzt etwas abgeändert.</p>
<p>Meine WndProc:</p>
<pre><code class="language-cpp">CDevice *device;
	switch(uMsg)
	{
	case WM_CREATE:

		printf(&quot;CREATE&quot;);
		SetWindowLong(Wnd,GWL_USERDATA,lParam);
		break;

	case WM_ACTIVATE:

		device=(CDevice*)GetWindowLong(Wnd,GWL_USERDATA);
		printf(&quot;ACTIVATE&quot;);
		if(LOWORD(wParam))
		{
			ShowCursor(false);
			device-&gt;OpenGL.activ=true;
			device-&gt;activ=true;
		}
		else
		{
			ShowCursor(true);
			device-&gt;OpenGL.activ=false;
			device-&gt;activ=false;
		}

		return 0;

	}

	return DefWindowProc(Wnd,uMsg,wParam,lParam);
</code></pre>
<p>Die WNDCLASS</p>
<pre><code class="language-cpp">wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.lpfnWndProc = (WNDPROC)WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 4;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = NULL;
wc.lpszMenuName = NULL;
wc.lpszClassName = &quot;wigfx&quot;;
</code></pre>
<p>und die Fenstererstellung</p>
<pre><code class="language-cpp">hWnd = CreateWindow(
		&quot;wigfx&quot;,
		&quot;wigfx&quot;,
		WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
		0,0,
		XRes,YRes,
		NULL,
		NULL,
		hInstance,
		this);
</code></pre>
<p>Leider funktioniert das auch nicht. CDevice bekommt die Änderung von WM_ACTIVATE in der WndProc nicht mit. Welche Kleinigkeit übersehe ich da?</p>
<p>MfG<br />
Shelling</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1505422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1505422</guid><dc:creator><![CDATA[-Shelling-]]></dc:creator><pubDate>Thu, 08 May 2008 17:07:13 GMT</pubDate></item></channel></rss>