Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > кнопки мыши


Автор: stab 21.6.2006, 08:12
как отловить нажатие на доп. кнопки мышиные? левая, правая, средняя - понятно, а вот остальные, например те, которые обычно как взад\вперёд работают. 

Автор: arilou 21.6.2006, 12:57
cully, DirectInput ? 

Автор: stab 21.6.2006, 21:41
DirectInput? мм.. по-мойму это как по воробьям из пушки. как-то проще должно быть. например, при нажатии на эти доп. кнопки происходит событие KeyDown, но по информации из аргументов переданных в обработчик у меня не получается идентифицировать нажатую клавишу. неужели никто не делал такого? я что пионер?  smile  

Автор: -ser- 22.6.2006, 04:43
Цитата(cully @  21.6.2006,  08:12 Найти цитируемый пост)
которые обычно как взад\вперёд работают

так может они просто заменяют MouseWheel 

Автор: stab 22.6.2006, 05:13
user posted image

например вот такая мышь. надо отловить две кнопки сбоку со стрелочками.  

Автор: Академик 22.6.2006, 06:44
С них тоже срабатывает OnMouseDown и другие мышьи события. В этот момент можно както через АПИ попробовать определить...? Просто идея такая. 

Автор: stab 22.6.2006, 07:32
Цитата(Академик @  22.6.2006,  10:44 Найти цитируемый пост)
С них тоже срабатывает OnMouseDown и другие мышьи события.


не срабатывают. 

Автор: arilou 22.6.2006, 14:37
Цитата(cully @  22.6.2006,  07:32 Найти цитируемый пост)
не срабатывают.  

Наверное все таки DirectInput  smile  

Автор: stab 22.6.2006, 18:38
arilou,  smile  smile  smile я очень сомневаюсь, что опера или ИЕ используют директИнпут, хотя в отношении ИЕ сомнения меньше.

придётся похоже на форум сишников идти..  smile   

Автор: arilou 22.6.2006, 18:46
cully, не не. Я думаю, что все эти навороты через дрова мыши работают. Тут Опера ни при чем.

Добавлено @ 18:47 
Попробуй поюзать свою мышь на стандартных дровах - разве ИЕ или Опера распознАют доп.кнопки? 

Автор: stab 22.6.2006, 19:02
вот чего нарыл:

Цитата

Beginning with Windows 2000, Microsoft supported the Microsoft IntelliMouse Explorer, which is a mouse with five buttons. In addition to the left, middle, and right buttons there are XBUTTON1 and XBUTTON2, which provide backward and forward navigation when using Microsoft Internet Explorer. 

The window manager supports XBUTTON1 and XBUTTON2 through the WM_XBUTTON* and WM_NCXBUTTON* messages. 


только что-то не приходют в окно WM_XBUTTON* или руки у меня кривые:

Код

private const int WM_XBUTTONDOWN = 0x020B;
private const int WM_XBUTTONUP = 0x020C;


protected override void WndProc(ref Message m)
{
    switch (m.Msg)
    {
        case WM_XBUTTONDOWN:
        case WM_XBUTTONUP:
            {
                Console.Beep(1000, 100);
            }
            break;
    }

    base.WndProc(ref m);
}


что не так?

Добавлено @ 19:04 
Цитата(arilou @  22.6.2006,  22:46 Найти цитируемый пост)
Попробуй поюзать свою мышь на стандартных дровах - разве ИЕ или Опера распознАют доп.кнопки? 


да, отлично распознают. никогда дрова не ставлю логитехные, неудобные и кривые. 

Автор: ivashkanet 22.6.2006, 19:28
Цитата(cully @  22.6.2006,  19:02 Найти цитируемый пост)
да, отлично распознают. никогда дрова не ставлю логитехные, неудобные и кривые. 

Значит у винды есть дрова на твою мышь. Посмотри как она называется.

Добавлено @ 19:29 
В диспетчере устройств 

Автор: mr.DUDA 22.6.2006, 22:39
Цитата(cully @  22.6.2006,  19:02 Найти цитируемый пост)
 Microsoft IntelliMouse Explorer,

этим всё и сказано, ИМХО 

Автор: stab 23.6.2006, 01:15
расследование показало:

1. Винда имеет дрова в поставке.
2. Дрова шлют Alt+Left и Alt+Right, вместо логичных WM_XBUTTON*

всем спасибо  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)