Die MouseFilter-Komponente stellt Funktionen bereit, mit denen sich die Funktionsweise der Maus in Anwendungen beeinflussen lässt. Derzeit sind das folgende Funktionen:
Ausblenden des Mauszeigers nach Inaktivität
In Vollbild-Anwendungen kann es sinnvoll sein, den Mauszeiger bei Nichtbenutzung auszublenden. Dafür werden alle Windows-Nachrichten an die laufende Anwendung überwacht und der Mauszeiger nach einer Weile, in der die Maus nicht bewegt wurde, ausgeblendet. Wird die Maus bewegt, wird der Zeiger sofort wieder angezeigt, bis zur nächsten Inaktivität. Diese Funktion wird mit der Eigenschaft AutoHideCursor aktiviert. Außerdem werden die Ereignisse MouseHidden und MouseShown bereitgestellt, die über das Ausblenden bzw. Anzeigen des Mauszeigers benachrichtigen.
Weiterleiten der Mausrad-Eingaben an das Steuerelement unter dem Mauszeiger
Normalerweise werden Mausrad-Eingaben immer an das Steuerelement gesendet, das den Tastatur-Eingabefokus besitzt. Da das Rad aber an der Maus befestigt ist und nicht an der Tastatur, sollte es sich mehr nach der Position des Mauszeigers richten als nach dem Tastaturfokus. Aufgrund der Art und Weise wie Windows die entsprechenden Nachrichten versendet kann man allerdings nicht in inaktiven Fenstern scrollen, auch wenn der Cursor darüber steht. Diese Funktion wird mit der Eigenschaft DispatchMouseWheel aktiviert.
Allgemein genügt es, eine Instanz der MouseFilter-Komponente zu einem Fenster der Anwendung hinzuzufügen, um die Funktionen zu verwenden.
.NET Kompatibilität: 2.0
Download
Da diese Komponente eine Reihe von Hilfsklassen verwendet, die ich in meinen eigenen Anwendungen üblicherweise verwende, biete ich nur eine einfache Beispielanwendung zum Download an, die den gesamten benötigten Quelltext dieser Komponente enthält und gleichzeitig die Verwendung demonstriert. Die Dateien dieser Komponente befinden sich im Unclassified-Unterverzeichnis.
Homepage mit Download und ggf. neueren Versionen
Anlage zu diesem Beitrag: Quelltext der Beispielanwendung (Visual Studio 2005 C# Projekt, 18 kB, 15. September 2007)
Lizenz, Nutzungsbedingungen
Dieses Programm ist unter den Bedingungen der GNU General Public License (GPL), Version 2 oder neuer veröffentlicht.