<?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[Devicehandle bei WM_MOUSEWHEEL]]></title><description><![CDATA[<p>Wie finde ich das handle des Gerätes raus welches einen WM_MOUSEWHEEL auslöst?</p>
<p>Ich habe bereits versucht anstatt der WM_MOUSEWHEEL Nachricht WM_INPUT abzufangen und dort in den ButtonFlags des RAWINPUTMOUSE structs nach 0x0400 (ich glaub RI_MOUSEWHEEL oder sowas) ausschau zu halten und den ButtonData Wert zu interpretieren.<br />
Ich verwende leider kein C++ will aber trotzdem einen fetzen code anhängen:</p>
<pre><code>RAWINPUT ri = new RAWINPUT();
retval = WinApi.GetRawInputData( devicehandle, RawInputCommand.Input, out ri, ref pcbSize, Marshal.SizeOf( typeof( RAWINPUTHEADER ) ) );

if ((ri.Mouse.ButtonFlags &amp; RawMouseButtons.MouseWheel) &gt; 0)
{
  if ((short)ri.Mouse.ButtonData &gt; 0)
  {
    data.Z += ri.Mouse.ButtonData;
  }
  if ((short)ri.Mouse.ButtonData &lt; 0)
  {
    data.Z -= ri.Mouse.ButtonData;
  }
}
</code></pre>
<p>Leider hat der Ansatz nicht funktioniert. Die Werte die Z annahmen haben nur geringfügig mit dem scrollen des Scrollrad koreliert.<br />
Ich vermute das das Beispiel auf <a href="http://pinvoke.net" rel="nofollow">pinvoke.net</a>, welches ich hierfür verwendet habe, nicht vollständig ist.<br />
Hat jemand eine Ahnung wie ich das am besten lösen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218664/devicehandle-bei-wm_mousewheel</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Apr 2026 18:23:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218664.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jul 2008 13:52:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Wed, 23 Jul 2008 13:52:12 GMT]]></title><description><![CDATA[<p>Wie finde ich das handle des Gerätes raus welches einen WM_MOUSEWHEEL auslöst?</p>
<p>Ich habe bereits versucht anstatt der WM_MOUSEWHEEL Nachricht WM_INPUT abzufangen und dort in den ButtonFlags des RAWINPUTMOUSE structs nach 0x0400 (ich glaub RI_MOUSEWHEEL oder sowas) ausschau zu halten und den ButtonData Wert zu interpretieren.<br />
Ich verwende leider kein C++ will aber trotzdem einen fetzen code anhängen:</p>
<pre><code>RAWINPUT ri = new RAWINPUT();
retval = WinApi.GetRawInputData( devicehandle, RawInputCommand.Input, out ri, ref pcbSize, Marshal.SizeOf( typeof( RAWINPUTHEADER ) ) );

if ((ri.Mouse.ButtonFlags &amp; RawMouseButtons.MouseWheel) &gt; 0)
{
  if ((short)ri.Mouse.ButtonData &gt; 0)
  {
    data.Z += ri.Mouse.ButtonData;
  }
  if ((short)ri.Mouse.ButtonData &lt; 0)
  {
    data.Z -= ri.Mouse.ButtonData;
  }
}
</code></pre>
<p>Leider hat der Ansatz nicht funktioniert. Die Werte die Z annahmen haben nur geringfügig mit dem scrollen des Scrollrad koreliert.<br />
Ich vermute das das Beispiel auf <a href="http://pinvoke.net" rel="nofollow">pinvoke.net</a>, welches ich hierfür verwendet habe, nicht vollständig ist.<br />
Hat jemand eine Ahnung wie ich das am besten lösen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552436</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Wed, 23 Jul 2008 13:52:12 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Wed, 23 Jul 2008 14:36:16 GMT]]></title><description><![CDATA[<p>Nur aus Interesse: Wofür brauchst du denn das Device-Handle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552470</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Wed, 23 Jul 2008 14:36:16 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Wed, 23 Jul 2008 14:41:34 GMT]]></title><description><![CDATA[<p>Ich implementiere ein Eingabeframework, welches die Anwendung in die Lage versetzt (fast) alle möglichen Eingabegeräte zu verwenden.<br />
Unter anderem auch mehr als eine Maus.<br />
Daher muss ich wissen an welcher Maus das Mausrad bewegt wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1552475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1552475</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Wed, 23 Jul 2008 14:41:34 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Fri, 25 Jul 2008 09:54:56 GMT]]></title><description><![CDATA[<p>Nicht mal jemand ne Referenz auf Material was helfen könnte?<br />
MSDN, Pinvoke sowie ein paar opensource Multitouch-Frameworks waren bisher meine einzige Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1553451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1553451</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Fri, 25 Jul 2008 09:54:56 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Fri, 25 Jul 2008 10:11:15 GMT]]></title><description><![CDATA[<p>HAst Du die Doku zu RegisterRawInputDevices und WM_INPUT gelesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1553462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1553462</guid><dc:creator><![CDATA[Martin Richter]]></dc:creator><pubDate>Fri, 25 Jul 2008 10:11:15 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Fri, 25 Jul 2008 10:43:53 GMT]]></title><description><![CDATA[<p>Jap, hab ich gelesen und auch verwendet.<br />
Leider nicht auf dem Code Ausschnitt oben zu sehen.</p>
<p>Also Mausbewegungen und -klicks bekomm ich einwandfrei, nur das Scrollrad liefert mir Müll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1553487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1553487</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Fri, 25 Jul 2008 10:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Fri, 25 Jul 2008 10:47:48 GMT]]></title><description><![CDATA[<p>Ich registriere die Mäuse mit:</p>
<pre><code>RAWINPUTDEVICE device = new RAWINPUTDEVICE();
device.WindowHandle = new WindowInteropHelper( target ).Handle;
device.UsagePage = 0x01;
device.Usage = 0x02;
device.Flags = RawInputDeviceFlags.InputSink;
WinApi.RegisterRawInputDevice( device );

m_HwndSourceHook = new HwndSourceHook( InputProc );
m_HwndSource = HwndSource.FromHwnd( new WindowInteropHelper( target ).Handle );
</code></pre>
<p>wobei target eine Instanz der Klasse Window (.Net 3.5) ist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1553490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1553490</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Fri, 25 Jul 2008 10:47:48 GMT</pubDate></item><item><title><![CDATA[Reply to Devicehandle bei WM_MOUSEWHEEL on Tue, 29 Jul 2008 07:51:27 GMT]]></title><description><![CDATA[<p>bump</p>
<p>keiner?<br />
Sehr schade. Jemand ne Idee in welchem Forum ich da noch posten könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1555406</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1555406</guid><dc:creator><![CDATA[SvenHecht]]></dc:creator><pubDate>Tue, 29 Jul 2008 07:51:27 GMT</pubDate></item></channel></rss>