Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: обработка "глобального" щелчка мыши Добавлено: 30.01.08 01:07  

Автор вопроса:  Sacrifice
Здравствуйте!

Столкнулся с проблемкой, поиск и чтение мануалов пока не привели к результату, может если кто знает или сталкивался с этим - подскажите, пожалуйста, как быть.


Приложение активно (основная форма активна), на форме множество всяких checkbox'ов, кнопок, надписей. Нужно написать обработчик для щелчка правой кнопки мыши, но учитывая то что курсор мышки может находится где угодно (не факт что на форме программы). И еще очень не хочется писать одинаковый обработчик щелчка правой кнопки мыши для каждого элемента на форме (надписи, кнопки), может можно их как-то объединить.


Заранее спасибо.

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 GeniX



ICQ: 418811267 

Вопросов: 40
Ответов: 243
 Web-сайт: porrygatter.zx6.ru
 Профиль | | #1
Добавлено: 30.01.08 07:18
В кодах подобный пример был. А вообще WinAPI для таких целей есть.

Ответить

Номер ответа: 2
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #2
Добавлено: 30.01.08 10:39
Написать процедуру один раз и вызывать ее из _MouseUp каждого контрола

Ответить

Номер ответа: 3
Автор ответа:
 GeniX



ICQ: 418811267 

Вопросов: 40
Ответов: 243
 Web-сайт: porrygatter.zx6.ru
 Профиль | | #3
Добавлено: 30.01.08 14:18
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As KeyCodeConstants) As Integer

Public Function MButtonDown(btButton As Byte) As Boolean
Select Case btButton
Case Is = 1
MButtonDown = CBool(GetKeyState(vbKeyLButton) And &H8000)
Case Is = 2
MButtonDown = CBool(GetKeyState(vbKeyRButton) And &H8000)
Case Is = 3
MButtonDown = CBool(GetKeyState(vbKeyMButton) And &H8000)
End Select
End Function

Private Sub Timer1_Timer()
If MButtonDown(1) Then MsgBox "Левая клавиша нажата!"
If MButtonDown(2) Then MsgBox "Правая клавиша нажата!"
If MButtonDown(3) Then MsgBox "Средняя клавиша нажата!"
End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Sacrifice



Вопросов: 1
Ответов: 1
 Профиль | | #4 Добавлено: 30.01.08 16:47
2 GENI: ОГРОМНОЕ СПАСИБО ТЕБЕ!!!!! ВЫРУЧИЛ!!!!

Ответить

Номер ответа: 5
Автор ответа:
 GeniX



ICQ: 418811267 

Вопросов: 40
Ответов: 243
 Web-сайт: porrygatter.zx6.ru
 Профиль | | #5
Добавлено: 30.01.08 17:24
Да не за что. Всегда рад помочь.

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 30.01.08 22:58
Я бы не советовал использовать таймер. Рекомендую почитать про MouseHook.

И еще очень не хочется писать одинаковый обработчик щелчка правой кнопки мыши для каждого элемента на форме (надписи, кнопки), может можно их как-то объединить.

Можно в массив.

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #7
Добавлено: 31.01.08 08:45
надпись и кнопку низя в массив)

Ответить

Номер ответа: 8
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #8 Добавлено: 01.02.08 02:12
Почему? o_O

Ответить

Номер ответа: 9
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #9
Добавлено: 01.02.08 02:39
Что?? А что можно в один массив запихать и надпись и кнопку? О_о

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам