Отлов DblClick на контроле который его не поддерживает

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Отлов DblClick на контроле который его не поддерживает

Сообщение jangle » 04.07.2006 (Вт) 10:14

Мне необходимо обрабатывать событие (даблклик) на компоненте который его не поддерживает. Подскажите как это проще реализовать?
Выдирать клики по GetAsyncKeyState с привязкой к таймеру очень гемморойно и некрасиво..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.07.2006 (Вт) 10:22

Опытный, гришь, программист, кодил на всяком, только вот кроме VB?.. И не знаешь про сабклассинг? Ага...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 04.07.2006 (Вт) 10:37

Опытный, гришь, программист, кодил на всяком, только вот кроме VB?.. И не знаешь про сабклассинг? Ага...


Гы, цикл обработки сообщений ? :D Cлово какое страшное придумали - "сабклассинг", наверное чтобы бедных VB юзеров пугать..
А проще можно?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.07.2006 (Вт) 10:47

Сабклассинг и message loop - вещи несколько разные.
Термин "сабклассинг" официальный. Равно как обратный ему суперклассинг.
Помнится, jangle, ты кого-то отправлял учить матчасть. Пора и тебе этим заняться.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 04.07.2006 (Вт) 11:15

Сабклассинг и message loop - вещи несколько разные.


И чем они собственно различны? Сабклассинг (как его понимают VB юзеры) это перехват сообщений до их обработки целевым окном, тот же цикл обработки сообщений формы, только вид сбоку.
Или может, ты имеешь ввиду, разделение сообщений на посылаемые окнам контролов VB, и системные сообщения Windows. Например перехват WM_SYSCOMMAND это сабклассинг, а WM_COMMAND - message loop?
Так все эти сообщения, все равно протекают через текущую оконную функцию...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.07.2006 (Вт) 11:21

jangle, сабклассинг -- это не цикл обработки сообщений.
Например потому, что это не цикл вообще ;-)
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 04.07.2006 (Вт) 11:45

сабклассинг -- это не цикл обработки сообщений.
Например потому, что это не цикл вообще


Опять, что-то я не понимаю. При сабклассинге, мы можем перехватить любое сообщение, просто заменив текущую оконную процедуру WindowProc, API функцией SetWindowLong, на свою функцию обработки сообщений.
Тоже самое, мы можем сделать в цикле обработки сообщений WindowProc, просто отлавливая по Select Case параметр wMsg.
Так в чем же принципиальная разница?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.07.2006 (Вт) 12:28

jangle писал(а):в цикле обработки сообщений WindowProc

Ого.
Это уже что-то новое.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.07.2006 (Вт) 12:44

jangle, учи албанский, то бишь терминологию. Уже сколько наблюдал сломанных копий из-за неправильно выбранного термина.
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.07.2006 (Вт) 13:19

сломанных копий чего :?:
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.07.2006 (Вт) 13:22

Просто сломанных копий.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.07.2006 (Вт) 13:26

А может, пираты сломали тыщу копий Винды из-за того, что там неправильно были выбраны термины?
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 04.07.2006 (Вт) 13:29

tyomitch писал(а):сломанных копий чего :?:

tyomitch, я под столом. :)

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 04.07.2006 (Вт) 13:58

tyomitch +1 :D Заловил (не от слова love, прошу заметить :wink: )
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 60

    TopList