<?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[Nachrichtenverarbeitung als Funktion in einer Klasse]]></title><description><![CDATA[<p>Hi,</p>
<p>ich wollte ein Klasse schreiben mit der ich Fenster erzeugen kann.<br />
Hierbei soll die Funktion für die Nachrichtenverarbeitung in der Klasse selbst enthalten sein, jedoch bekomm ich immer die Fehlermeldung:<br />
error C2440: '=' : cannot convert from 'LRESULT (__stdcall CFenster::* )(HWND,UINT,WPARAM,LPARAM)' to 'WNDPROC'<br />
Weiß jemand wie ich das Problem lösen kann? Es muss aber auf jeden Fall die Nachrichtenfunktion in der Klasse enthalten sein und nicht Global definiert werden.</p>
<p>mfg Mortl</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123380/nachrichtenverarbeitung-als-funktion-in-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Jul 2026 20:04:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123380.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 Oct 2005 09:47:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 09:47:26 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich wollte ein Klasse schreiben mit der ich Fenster erzeugen kann.<br />
Hierbei soll die Funktion für die Nachrichtenverarbeitung in der Klasse selbst enthalten sein, jedoch bekomm ich immer die Fehlermeldung:<br />
error C2440: '=' : cannot convert from 'LRESULT (__stdcall CFenster::* )(HWND,UINT,WPARAM,LPARAM)' to 'WNDPROC'<br />
Weiß jemand wie ich das Problem lösen kann? Es muss aber auf jeden Fall die Nachrichtenfunktion in der Klasse enthalten sein und nicht Global definiert werden.</p>
<p>mfg Mortl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893301</guid><dc:creator><![CDATA[Mortl2]]></dc:creator><pubDate>Sun, 16 Oct 2005 09:47:26 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 09:50:55 GMT]]></title><description><![CDATA[<p>in der FAQ steht glaub ich was dazu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893304</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sun, 16 Oct 2005 09:50:55 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 10:14:45 GMT]]></title><description><![CDATA[<p>Ja, hab ich mir schon angeschaut, da sind ein haufen Lösungsvorschläge drin und keinen davon hab ich kapiert <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <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 />
Könnte vielleicht jemand nochmal einen Posten und ein bisschen erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893326</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893326</guid><dc:creator><![CDATA[Mortl2]]></dc:creator><pubDate>Sun, 16 Oct 2005 10:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 10:43:59 GMT]]></title><description><![CDATA[<p>also, meines wissens geht es erstmal nich, eine echte nachrichtenprozedur in einer klasse zu haben. EIne Möglichkeit wäre (unelegant!), falls man nur ein fenster braucht, das handle auf die klasse des fensters global zu speichern und eine globale nachrichtneprozedur macht, die die nachrichten über das globale klassenhandle an dsa fensterobjekt weiterreicht. Ist aber unschön und man kann nur ein fensterobjekt haben.<br />
Eine andere möglichkeit ist eine globale std::map&lt;HWND, FensterObjekt*&gt; und eine globale Fensterprozedur, welche über die map die handles der fensterklassen rausbekommt und an diese weiterleitet.<br />
Und dann gibt es noch eine schöne methode (find ich persönlich am schönsten) mit SetWindowLong beim erstellen des Fensters die adresse der Fensterklasse als UserData zu speichern. In der globalen windowproc kannst du dann mit GetWindowLong die Adresse der Fensterklasse schnell rausbekommen und die Nachricht an die Klasse weitersenden.<br />
Oder du machst eben die ganze klasse statisch und kannst somit aber auch nur ein fenster haben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893346</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sun, 16 Oct 2005 10:43:59 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 10:51:29 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort! Aber mir geht es darum das ich in der Nachrichtenprozedur auf die Elemente der Klasse zugreifen kann, kann man das irgendwie machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893353</guid><dc:creator><![CDATA[Mortl2]]></dc:creator><pubDate>Sun, 16 Oct 2005 10:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 11:27:25 GMT]]></title><description><![CDATA[<p>wenn du den pointer auf die fensterklasseninstanz hast (mit getwindowlng zB oder mit der map) kannst du doch über diesen pointer auf die klasse zugreifen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893373</guid><dc:creator><![CDATA[Maxi]]></dc:creator><pubDate>Sun, 16 Oct 2005 11:27:25 GMT</pubDate></item><item><title><![CDATA[Reply to Nachrichtenverarbeitung als Funktion in einer Klasse on Sun, 16 Oct 2005 12:55:16 GMT]]></title><description><![CDATA[<p>Das Thema wurde hier schon öfters behandelt. Unter den Links solltest du ausführlichere Infos erhalten.</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-115790.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-115790.html</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-107688.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-107688.html</a></p>
<p>Ich würde übrigens die Variante mit <em>this</em> über GetWindowLongPtr/SetWindowLongPtr zu handeln, bevorzugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/893439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/893439</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Sun, 16 Oct 2005 12:55:16 GMT</pubDate></item></channel></rss>