<?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[Ein kleines Problem mit SetWindowLongPtr]]></title><description><![CDATA[<p>Nabend, ein kleines PRoblem bei der oben genannten Funktion:</p>
<pre><code class="language-cpp">//Hier &quot;überschreibe&quot; ich ein Fenster mit einer anderen Proc

    void CWindowsControls::CButton::ActivateDrag(bool bTrue)
    {
        if(bCreated)
        {
            if(bTrue) PrevWndProcEdit = (WNDPROC)SetWindowLongPtr(bt_hwnd,  GWLP_WNDPROC, (LONG_PTR) DragWndProc);            
            else SetWindowLongPtr(bt_hwnd, GWLP_WNDPROC, (LONG_PTR) PrevWndProcEdit);   
        }
    }
</code></pre>
<pre><code class="language-cpp">//Das heir ist die andere PRoc

    LRESULT CALLBACK CWindowsControls::CButton::DragWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
       switch (message)
       {
          case WM_DROPFILES:
              return(SendMessage(GetParent(hwnd), message, wParam, lParam));
          default:
              break;
       }

       return CallWindowProc (PrevWndProcEdit, hwnd, message, wParam, lParam);
    }
</code></pre>
<p>Fehler meldung in folgender Zeile:</p>
<pre><code class="language-cpp">PrevWndProcEdit = (WNDPROC)SetWindowLongPtr(bt_hwnd, GWLP_WNDPROC, (LONG_PTR) DragWndProc);
</code></pre>
<p>302 aggregate value used where an integer was expected</p>
<p>Ich habe ehrlich gesagt keine Ahnung was das sein kann. Wenn ich die &quot;DragWndProc&quot; aus der Klasse rausnehme und als globale Funktion benutze klappt es -.- habt ihr ne Idee ??</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/196697/ein-kleines-problem-mit-setwindowlongptr</link><generator>RSS for Node</generator><lastBuildDate>Sat, 02 May 2026 06:45:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/196697.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 01 Nov 2007 21:38:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Thu, 01 Nov 2007 21:38:52 GMT]]></title><description><![CDATA[<p>Nabend, ein kleines PRoblem bei der oben genannten Funktion:</p>
<pre><code class="language-cpp">//Hier &quot;überschreibe&quot; ich ein Fenster mit einer anderen Proc

    void CWindowsControls::CButton::ActivateDrag(bool bTrue)
    {
        if(bCreated)
        {
            if(bTrue) PrevWndProcEdit = (WNDPROC)SetWindowLongPtr(bt_hwnd,  GWLP_WNDPROC, (LONG_PTR) DragWndProc);            
            else SetWindowLongPtr(bt_hwnd, GWLP_WNDPROC, (LONG_PTR) PrevWndProcEdit);   
        }
    }
</code></pre>
<pre><code class="language-cpp">//Das heir ist die andere PRoc

    LRESULT CALLBACK CWindowsControls::CButton::DragWndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
       switch (message)
       {
          case WM_DROPFILES:
              return(SendMessage(GetParent(hwnd), message, wParam, lParam));
          default:
              break;
       }

       return CallWindowProc (PrevWndProcEdit, hwnd, message, wParam, lParam);
    }
</code></pre>
<p>Fehler meldung in folgender Zeile:</p>
<pre><code class="language-cpp">PrevWndProcEdit = (WNDPROC)SetWindowLongPtr(bt_hwnd, GWLP_WNDPROC, (LONG_PTR) DragWndProc);
</code></pre>
<p>302 aggregate value used where an integer was expected</p>
<p>Ich habe ehrlich gesagt keine Ahnung was das sein kann. Wenn ich die &quot;DragWndProc&quot; aus der Klasse rausnehme und als globale Funktion benutze klappt es -.- habt ihr ne Idee ??</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396122</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Thu, 01 Nov 2007 21:38:52 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Thu, 01 Nov 2007 21:41:28 GMT]]></title><description><![CDATA[<p>Wine WNdProc muss entweder einen globale Funktion sein, oder in einer Klasse statisch!</p>
<p>Schau Dir am besten an, wie das andere Frameworks machen (wxWidgets/MFC/usw.).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396123</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 01 Nov 2007 21:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Thu, 01 Nov 2007 21:45:52 GMT]]></title><description><![CDATA[<p>Nunja &quot;statisch&quot; wäre doch ok oder etwa nicht ? Ehrlich gesagt halte ich meine Variante schon für statisch ?! Wie meinst du das ? sonst probier ichs einfach mal aus statisch zu machen <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/1396126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396126</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Thu, 01 Nov 2007 21:45:52 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Thu, 01 Nov 2007 22:45:15 GMT]]></title><description><![CDATA[<p>Ok, das klappt nun ! Aber wie kann ich an meine &quot;internen&quot; Variablen zugreifen mit einer static Methode ?! ich hab ja in dem fall keine this zeiger</p>
<p>Gruß Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396147</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Thu, 01 Nov 2007 22:45:15 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Fri, 02 Nov 2007 06:00:23 GMT]]></title><description><![CDATA[<p>DWLP_USER</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396187</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Fri, 02 Nov 2007 06:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Fri, 02 Nov 2007 08:03:52 GMT]]></title><description><![CDATA[<p>oder GWL_USERDATA</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396216</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 02 Nov 2007 08:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Fri, 02 Nov 2007 08:22:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">::SetWindowLongPtr(hWnd, GWL_USERDATA, reinterpret_cast&lt;LONG_PTR&gt;(this));
::SetWindowLongPtr(hWnd, GWLP_WNDPROC, reinterpret_cast&lt;LONG_PTR&gt;(&amp;CButton::StaticDragWndProc));
</code></pre>
<p>...<br />
In StaticDragWndProc:</p>
<pre><code class="language-cpp">CButton* this_ptr = reinterpret_cast&lt;CButton*&gt;(::GetWindowLongPtr(hWnd, GWLP_USERDATA, ...));
return this_ptr-&gt;DragWndProc(...);
</code></pre>
<p>... DragWndProc ist dann nicht statisch ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396224</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 02 Nov 2007 08:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ein kleines Problem mit SetWindowLongPtr on Fri, 02 Nov 2007 10:57:58 GMT]]></title><description><![CDATA[<p>Danke klappt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1396318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1396318</guid><dc:creator><![CDATA[Foxx90]]></dc:creator><pubDate>Fri, 02 Nov 2007 10:57:58 GMT</pubDate></item></channel></rss>