Страница: 1 |
Страница: 1 |
Вопрос: обработка "глобального" щелчка мыши
Добавлено: 30.01.08 01:07
Автор вопроса: Sacrifice
Здравствуйте!
Столкнулся с проблемкой, поиск и чтение мануалов пока не привели к результату, может если кто знает или сталкивался с этим - подскажите, пожалуйста, как быть.
Приложение активно (основная форма активна), на форме множество всяких checkbox'ов, кнопок, надписей. Нужно написать обработчик для щелчка правой кнопки мыши, но учитывая то что курсор мышки может находится где угодно (не факт что на форме программы). И еще очень не хочется писать одинаковый обработчик щелчка правой кнопки мыши для каждого элемента на форме (надписи, кнопки), может можно их как-то объединить.
Заранее спасибо.
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
GeniX
ICQ: 418811267
Вопросов: 40
Ответов: 243
Web-сайт:
Профиль | | #1
Добавлено: 30.01.08 07:18
В кодах подобный пример был. А вообще WinAPI для таких целей есть.
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 30.01.08 10:39
Написать процедуру один раз и вызывать ее из _MouseUp каждого контрола
Номер ответа: 3
Автор ответа:
GeniX
ICQ: 418811267
Вопросов: 40
Ответов: 243
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #5
Добавлено: 30.01.08 17:24
Да не за что. Всегда рад помочь.
Номер ответа: 6
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #6
Добавлено: 30.01.08 22:58
Я бы не советовал использовать таймер. Рекомендую почитать про MouseHook.
Можно в массив.
Номер ответа: 7
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #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-сайт:
Профиль | | #9
Добавлено: 01.02.08 02:39
Что?? А что можно в один массив запихать и надпись и кнопку?