Страница: 1 | 2 |
Вопрос: Как проигнорировать событие?
Добавлено: 14.04.06 01:47
Автор вопроса: Temak | ICQ: 264-692-095
Возможно ли в ВБ проигнорировать возникновение события. Ну, например, хочу, чтобы в определенный момент выполнение проги событие Activate для формы не выполнялось. А в других местах программы было доступным. И если возможно, то как это реализовать? Сенкс
Ответы
Всего ответов: 19
Номер ответа: 1
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #1
Добавлено: 14.04.06 05:13
батя ты о чем? события игнорить тока sne умеет, а остальным прямая дорога к
и уточни о каких событиях ты точно говориш?
ибо если меня не коротит на фазу то Form_Activate вызывается когда форма уже прорисована на экране, а Form_Load вызывается до прорисовки.
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 14.04.06 09:59
Ой, ну да ладно Примеров с сабклассингом достаточно, с ходу непомню чё там за сообщение форме приходит, по сколько пишу не с дома, подглядеть некуда... Словить это сообщение, наверное WM_чёнибуть мож WM_ACTIVE? и короче вместо него передавать обработчику нулик и будет игнорирование...
Номер ответа: 3
Автор ответа:
Tamplier
ICQ: 298742928
Вопросов: 58
Ответов: 340
Профиль | | #3
Добавлено: 14.04.06 15:14
Ага, или еще вариант, если не допирает обработка событий (как, нпрамер, до меня недавно), можно просто задать переменную и в зависимости от ее значения выполнять или не выполнять действия. Например:
Private blCommandPressed as Boolean
Private Sub Command1_Click()
blCommandPressed=True
End Sub
Private Sub Form_Activate()
If blCommandPressed Then MgBox "You clicked a command button!!!"
End Sub
Номер ответа: 4
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #4
Добавлено: 14.04.06 22:07
2 HAKER а ты сабклассинг сделать сможеш не глючно? самое лучшее решение это использовать какуюнить переменную, а еще лучше просто писать код грамотно, чтоб не скакть по нему, козлу по скалам, и зачем вообще понадобилось игнорировать событие активации? не писать в него код вот и проигнорируеш.
на счет WM_ACTIVATE ты прав, он так и выглядит.
Номер ответа: 5
Автор ответа:
Temak
ICQ: 264-692-095
Вопросов: 4
Ответов: 24
Профиль | | #5
Добавлено: 15.04.06 01:57
да это каждому юзеру известно
Номер ответа: 6
Автор ответа:
Temak
ICQ: 264-692-095
Вопросов: 4
Ответов: 24
Профиль | | #6
Добавлено: 15.04.06 02:50
HACKER, а ты мог бы примерчик привести с WM_ACTIVE, а то у меня не фурычит!
TEMAK
Номер ответа: 7
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #7
Добавлено: 15.04.06 03:24
LOL, господи, сабклассинг это не для слабонервных, гдето видел пример сабклассиега с использованием библиотек писанных на ассемблере, он там все что тебе нужно делал, только нужно ли тебе это? попахивает мазохизмом. чтобы чтото игнорировать сделай boolean переменную и в зависимости от флажка работай с ней. пример сабклассинга и хуков можеш стянуть на vb.kiev.ua в разделе API, но не гарантирую что после твоих экспериментов у тебя винда не будет принимать таск менеджер за ICQ и выводить в нем контакты.
Номер ответа: 8
Автор ответа:
Temak
ICQ: 264-692-095
Вопросов: 4
Ответов: 24
Профиль | | #8
Добавлено: 15.04.06 03:36
Да, наверное для меня это самое лучшее
Номер ответа: 9
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #9
Добавлено: 15.04.06 15:31
Только субклассинг! Можно для нужного окна отлавливать WM_MouseActivate и делать что надо.
Для Alexander: Субклассинг - не мазохизм, а полет свободной мысли в пределах озверевшей операционной системы. Это факт! И с этим никакой секс не сравнится!
Номер ответа: 10
Автор ответа:
Alexander
Вопросов: 19
Ответов: 118
Профиль | | #10
Добавлено: 16.04.06 00:38
Факт то факт, тока какой смысл делать лишние 20 килобайт кода для перехвата одного лиш события? я конечно согласился бы если автор начал измываться над эксплорером и чемнить таким, так он же не написал что именно он пишет, так что здесь оба метода хороши.
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 17.04.06 00:32
Ну да, мне заняться нечем, щас я буду wm_activate перехватывать...
Народ! плз, давайте иметь совесть!
http://www.softcircuits.com/dl/vbsrc/subcls32.zip
Номер ответа: 12
Автор ответа:
Temak
ICQ: 264-692-095
Вопросов: 4
Ответов: 24
Профиль | | #12
Добавлено: 17.04.06 02:02
HACKER, спасибо!
Постараюсь больше особо не напрягать!
Удачи!
Номер ответа: 13
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #13
Добавлено: 17.04.06 11:19
Ну, ребят, вы даете! Чего народ пугаете?
Какие асмовые библы, какие десятки килов кода?
Пара апишек и функция в модуле - все что нужно.
Другой вопрос - накой это здесь. Аффтару нужно просто в ряде случаев не обрабатывать самому событие, тут флаг или любая другая проверка - самый оптимальный вариант.
А в сабклассинге нет ничего страшного, только пользоваться им умело. Если его применять криворуко, а потом и жаловаться какая это плохая весчь... ну, мдя, вы поняли
Номер ответа: 14
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #14
Добавлено: 17.04.06 11:22
ЗЫ
LOL, господи, сабклассинг это не для слабонервных, гдето видел пример сабклассиега с использованием библиотек писанных на ассемблере
А я недавно где-то видел фотки кулера, прикрученного к плате саморезами навылет
Вспомню - линки выложу. Хотя они тут вроде были )
Номер ответа: 15
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #15
Добавлено: 17.04.06 16:25
Хех, у меня комп стоял с кулером, просто положенным на проц и прижатым стержнями от гелевой ручки