<?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[als WndProc eine Klassenmethode angeben]]></title><description><![CDATA[<p>Hi<br />
Ich war ein wenig unentschlossen ob dieses Thema nicht eher in C++ reingehört und hoffe das meine Entscheidung nicht falsch war <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>
<p>Folgendes Problem:<br />
Eine Klasse von mir soll bei Bedarf ein voll funktionsfähiges Fenster anzeigen. Beim Initialisieren der WNDCLASSEX bin ich jedoch auf ein Problem gestossen. Folgender Code:</p>
<pre><code class="language-cpp">wcex.lpfnWndProc = (WNDPROC)this-&gt;WndProc;
</code></pre>
<p>funktioniert leider nicht und gibt folgenden Fehler aus:</p>
<blockquote>
<p>error C2440: 'Typumwandlung': 'overloaded-function' kann nicht in 'WNDPROC' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein</p>
</blockquote>
<p>Die Methode selbst definierte ich als:</p>
<pre><code class="language-cpp">LRESULT CALLBACK MeineKlasse::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
</code></pre>
<p>Hat jemand eine Idee wie ich es hinbekomme dass ich diese Memberfunktion als gültige WndProc eintragen kann?</p>
<p>Peter</p>
<p>P.S. Von MFC, etc möchte ich erstmal absehen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/149727/als-wndproc-eine-klassenmethode-angeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Jul 2026 08:18:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/149727.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Jun 2006 17:42:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to als WndProc eine Klassenmethode angeben on Thu, 08 Jun 2006 17:42:35 GMT]]></title><description><![CDATA[<p>Hi<br />
Ich war ein wenig unentschlossen ob dieses Thema nicht eher in C++ reingehört und hoffe das meine Entscheidung nicht falsch war <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>
<p>Folgendes Problem:<br />
Eine Klasse von mir soll bei Bedarf ein voll funktionsfähiges Fenster anzeigen. Beim Initialisieren der WNDCLASSEX bin ich jedoch auf ein Problem gestossen. Folgender Code:</p>
<pre><code class="language-cpp">wcex.lpfnWndProc = (WNDPROC)this-&gt;WndProc;
</code></pre>
<p>funktioniert leider nicht und gibt folgenden Fehler aus:</p>
<blockquote>
<p>error C2440: 'Typumwandlung': 'overloaded-function' kann nicht in 'WNDPROC' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein</p>
</blockquote>
<p>Die Methode selbst definierte ich als:</p>
<pre><code class="language-cpp">LRESULT CALLBACK MeineKlasse::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
</code></pre>
<p>Hat jemand eine Idee wie ich es hinbekomme dass ich diese Memberfunktion als gültige WndProc eintragen kann?</p>
<p>Peter</p>
<p>P.S. Von MFC, etc möchte ich erstmal absehen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074044</guid><dc:creator><![CDATA[petern]]></dc:creator><pubDate>Thu, 08 Jun 2006 17:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to als WndProc eine Klassenmethode angeben on Thu, 08 Jun 2006 18:29:36 GMT]]></title><description><![CDATA[<p>Dazu musst Du das &quot;Windows-System&quot; in Klassen kapseln, was die MFC und diverse anderen Frameworks machen (wxWidgets).<br />
Für einen Ansatz siehe:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-149120.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-149120.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074074</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 08 Jun 2006 18:29:36 GMT</pubDate></item><item><title><![CDATA[Reply to als WndProc eine Klassenmethode angeben on Thu, 08 Jun 2006 21:21:04 GMT]]></title><description><![CDATA[<p>petern schrieb:</p>
<blockquote>
<p>Hat jemand eine Idee wie ich es hinbekomme dass ich diese Memberfunktion als gültige WndProc eintragen kann?</p>
</blockquote>
<p>Das geht nicht, da Memberfunktionen und Non-Memberfunktionen nicht kompatibel sind. Wie im anderen Thread bereits steht, du musst die Funktion static machen. Und damit du auf Klassenmember zugreifen kannst, brauchst du einen this Zeiger. Diesen kannst du dir mittels SetWindowLongPtr und GWLP_USERDATA beim Erstellen des Fensters in WM_CREATE merken (lpParam bei CreateWindow nutzen). Und mit GetWindowLongPtr und GWLP_USERDATA in deiner WndProc wieder auslesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1074214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1074214</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Thu, 08 Jun 2006 21:21:04 GMT</pubDate></item></channel></rss>