Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поймать событие? / 7 сообщений из 7, страница 1 из 1
20.04.2005, 11:09:52
    #33024724
AVVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
Здравствуйте все!

Вопрос: как поймать событие о потере фокуса приложением?
Т.е. если фокус теряет форма (мы переходим на другую форму в том же приложении), то это понятно.
А если пользователь нажал [Alt+Tab] или еще как перешел в другое приложение, возникнет ли какое-то событие в текущем? А если возникнет, то как его поймать?

AVVS
...
Рейтинг: 0 / 0
20.04.2005, 12:24:25
    #33024957
Дурак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
Приложением не знаю, а формой , по-моему, Form_Deactivate()
...
Рейтинг: 0 / 0
20.04.2005, 12:26:34
    #33024968
Дурак
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
MSDN(Form Events and Methods)
Deactivate event occurs when another form or application becomes active.
...
Рейтинг: 0 / 0
20.04.2005, 12:36:11
    #33025006
AVVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
Дурак MSDN(Form Events and Methods)
Deactivate event occurs when another form or application becomes active.



У меня немного другие сведения:

MSDN (Activate,Deactivate Events)

The Activate and Deactivate events occur only when moving the focus within an application. Moving the focus to or from an object in another application doesn't trigger either event. The Deactivate event doesn't occur when unloading an object.



Это событие ловится только внутри приложения. В MSDN правильно написано, я проверял.

Для моего случая не работает.
...
Рейтинг: 0 / 0
20.04.2005, 17:21:22
    #33025915
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
Фокус есть свойство окна, а не приложения, и то, что показывается по alt+tab, это открытые top-level окна, которые могут принадлежать и одному приложению. Единственный способ получить что-то похожее на App_Deactivate - организовать коллекцию открытых окон, на событие Deactivate навесить установку флажка, позазывающего, что форма деактивирована. А когда надо, сравнивать что-то типа AppForms.Count = AppForms.DeactivatedCount
...
Рейтинг: 0 / 0
24.04.2005, 01:03:21
    #33031964
under
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
А мона сделать по тупому! В лоб шо называется!

Декларируем GETфореGROUNDWINDOW (что-то в таком роде....)
Делаем таймер.
ДИМим Переменные My и They как ДУБЛ
При загрузке формы получем индификатор нашего окна (любимого).
А по таймеру сверяем Индефикаторы окон. Не наше? Тогда это EVENT!!!!
...
Рейтинг: 0 / 0
24.04.2005, 12:35:51
    #33032112
under
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поймать событие?
во! Api:

Код: plaintext
Public Declare Function GetForegroundWindow Lib "user32" () As Long
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как поймать событие? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]