3 Radmaus bzw. Radmausunterstützung unter Microsoft Windows

Das Scrollen eines Objektes mit Hilfe einer Scrollbar ist in der Regel klar: Es wird das Objekt gescrollt an dem sich die Scrollbar befindet. Um die Scrollbar zu bedienen, muss sich die Maus über der Scrollbar befinden.

Auch beim Scrollen über Tastatur ist es jedem relativ klar, dass das Objekt, das den Fokus besitzt gescrollt wird.

Leider gibt es diese Klarheit beim Scrollen mit dem Rad einer Radmaus nicht. Es kann entweder das Objekt, über dem sich die Maus befindet, oder das Objekt, das den Fokus besitzt, gescrollt werden. Die "Windows User Experience Guidelines" von Microsoft sagen leider nichts darüber aus, welches Objekt von einer Radmaus gescrollt werden soll. Und so gibt es in der Realität tatsächlich auch beide Modelle. Welches Modell verwendet wird, ist hierbei nicht von der Anwendung sondern vom verwendetem Maustreiber abhängig (hierzu später mehr).

Befragt man Computernutzer, so wird das eine oder das andere Modell für logisch erklärt, je nachdem welches der einzelne Nutzer gewohnt ist.

Weshalb bestimmt der Maustreiber das Verhalten?

In der Onlinehilfe von Microsoft steht zwar zu der speziellen Radmaus Nachricht WM_MOUSEWHEEL:

The WM_MOUSEWHEEL message is sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it.

Das heißt, Microsoft sieht hier das Modell vor, dass das Fokusobjekt und nicht das Objekt unter der Maus gescrollt wird. Der IDM unterstützt dies auch, in dem er diese Nachricht wie gefordert behandelt.

Allerdings gab es die ersten Radmäuse bevor es die WM_MOUSEWHEEL Nachricht gab. Die Treiber dieser Radmäuse nutzten die Tatsache aus, dass ein Objekt scrollt wenn es die WM_VSCROLL oder WM_HSCROLL Nachricht erhält. Das heißt, es wird eine WM_VSCROLL oder WM_HSCROLL Nachricht und keine spezielle WM_MOUSWHEEL Nachricht versendet. Bei neueren Treibern lässt es sich sogar einstellen, wie diese arbeiten sollen.

Fazit

Das Verhalten des IDM ist korrekt, da die WM_MOUSEWHEEL Nachricht richtig verarbeitet wird. Wenn der Maustreiber diese Nachricht gar nicht erzeugt, sondern lediglich normale WM_VSCROLL und WM_HSCROLL versendet, dann liegt es am Treiber oder an dessen Einstellungen.

Leider ist uns kein offizieller Style Guide bekannt, der eine Aussage darüber trifft, welches Objekt beim Betätigen des Mausrades gescrollt werden muss.