Почему мое приложение не получает сообщения о наклоне колесика мыши?
В этом вопросеHow to detect mouse wheel tilt опубликован и принят ответ, который показывает необходимый код.
Я реализовал этот код в существующих приложенияхWndProc
метод (который работает для других сообщений, которые мне нужно перехватить), но он не работает. Я проверил иWndProc
Похоже, что не получает никаких сообщений, не говоря уже о сообщениях со значением0x020E
когда я наклоняю колесо мыши.
Я использую Microsoft Wireless Laser 5000 в Windows XP SP3 (полностью исправленный) с установленным .NET 3.5 SP1.
Я обновил драйверы Intellipoint до версии 7.0.258.0 от 05.08.2009.
Другие приложения (например, Visual Studio, Word, paint.NET) получают и воздействуют на наклон колесика мыши, поэтому это должно быть мое приложение, но я не вижу, что я делаю неправильно.
Просто для полноты вот мой код:
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);
}
Trace.WriteLine
вызов - это попытка проверить, проходят ли сообщения наклона. Другие сообщенияWM_EXITSIZEMOVE
а такжеWM_SYSCOMMAND
принимаются Сообщения определяются как:
private const int WM_EXITSIZEMOVE = 0x0232;
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_MINIMIZE = 0xF020;
private const int WM_MOUSEHWHEEL = 0x020E;
NOTE I removed the [hardware] tag, as I'm 99% sure it's not the hardware that's at fault as other applications are receiving the messages.
UPDATE
Я добавил в свое приложение многострочное текстовое поле с полосами прокрутки, которое принимает и воздействует на сообщения о наклоне колесика мыши. Так что все, что мне нужно сделать, это найти код для этого;)
UPDATE
Этот вопрос на SuperUser может иметь какое-то отношение к этому - я буду следить за ответами там.