2017-12-10 1 views

Antwort

0

Was Sie tun könnten, ist eine MessageFilter auf Ihrem Formular installieren. Dadurch erhalten Sie vor der Kontrolle durch VLC keine Mauseingabe.

Lassen Sie Ihr Formular implementieren IMessageFilter und die PreMessageFilter-Methode, die Sie Ihr Mausrad erhalten. Der Parameter ist eine Win32-Nachricht. Hier finden Sie Informationen zum WM_MOUSEWHEEL Event.

public partial class Form1 : Form, IMessageFilter 

    public bool PreFilterMessage(ref Message m) 
    { 
     const int WM_MOUSEWHEEL = 0x020A; 
     if (m.Msg == WM_MOUSEWHEEL) 
     { 
      // The wheeldelta is stored in the highorder of WParam. 
      // The value of which will be 120 (positive for forward, negative for backward). 
      int hiWord = m.WParam.ToInt32() >> 16; 

      // So use the delta as a way to increment/decrement the volume 
      this.axVLCPlugin21.volume += 10 * (hiWord/120); 
      Trace.WriteLine("vol: " + this.axVLCPlugin21.volume); 
     } 

     return false; 
    } 

Und vergessen Sie nicht, den Nachrichtenfilter mit der Anwendung zu registrieren. Sie können dies im Konstruktor Ihres Formulars tun.

public Form1() 
    { 
     Application.AddMessageFilter(this); 

     InitializeComponent(); 
    }