Dlaczego moja aplikacja nie odbiera wiadomości o nachyleniu kółka myszy?

W tym pytaniuJak wykryć przechylenie kółka myszy odpowiedź jest publikowana i akceptowana, co pokazuje wymagany kod.

Zaimplementowałem ten kod w istniejącej aplikacjiWndProc metoda (która działa dla innych wiadomości, które muszę pułapkować), ale nie działa. Sprawdziłem iWndProc nie wydaje się otrzymywać żadnych wiadomości, nie mówiąc już o wiadomościach o wartości0x020E kiedy przechylam kółko myszy.

Używam Microsoft Wireless Laser 5000 w systemie Windows XP SP3 (w pełni załatany) z zainstalowanym .NET 3.5 SP1.

Zaktualizowałem moje sterowniki Intellipoint do wersji 7.0.258.0 z dnia 08/05/2009.

Inne aplikacje (np. Visual Studio, Word, paint.NET) pobierają i działają na przechylane kółko myszy, więc musi to być moja aplikacja, ale nie widzę, co robię źle.

Tylko dla kompletności oto mój kod:

    protected override void WndProc(ref Message m)
    {
        Trace.WriteLine(string.Format("0x{0:X4}", m.Msg));
        switch(m.Msg)
        {
            case WM_EXITSIZEMOVE:
                Opacity = 1.0;
                break;
            case WM_SYSCOMMAND:
                int command = m.WParam.ToInt32() & 0xfff0;
                if (command == SC_MINIMIZE && this.minimizeToTray)
                {
                    MinimizeToTray();
                }
                break;
            case WM_MOUSEHWHEEL:
                // Handle tilting here
                break;
        }
        base.WndProc(ref m);
    }

TheTrace.WriteLine wywołanie jest próbą sprawdzenia, czy wiadomości przechyłu przechodzą. Pozostałe wiadomościWM_EXITSIZEMOVE iWM_SYSCOMMAND są odbierane. Wiadomości są zdefiniowane jako:

    private const int WM_EXITSIZEMOVE = 0x0232;
    private const int WM_SYSCOMMAND = 0x0112;
    private const int SC_MINIMIZE = 0xF020;
    private const int WM_MOUSEHWHEEL = 0x020E;

UWAGA Usunąłem znacznik [hardware], ponieważ mam 99% pewności, że to nie wina sprzętu, ponieważ inne aplikacje odbierają wiadomości.

AKTUALIZACJA

Do mojej aplikacji dodałem wielowierszowe pole tekstowe z paskami przewijania, które odbiera i działa na wiadomości przechyłu kółka myszy. Więc wszystko, co muszę zrobić, to znaleźć kod do tego;)

AKTUALIZACJA

To pytanie na SuperUser może mieć to jakiś wpływ - będę tam pilnować odpowiedzi.

questionAnswers(1)

yourAnswerToTheQuestion