Что нового

Окна, Диалоги Почему MsgBox отбирает фокус у рабочего окна?

Oki

Знающий
Сообщения
148
Репутация
15
Если работать с каким-то одним окном (например, набирать текст в редакторе) и в перерыве открыть какое-то другое окно (например, браузер), то после закрытия этого второго окна фокус автоматически вернётся на первое (в рассмотренном примере сразу же можно продолжить набор текста в редакторе). Почему то же самое не происходит при отработке функции MsgBox(), причём даже в случае отсутствия интеракции с сообщением, когда его закрытие происходит по заданному таймауту? Приходится кликать мышкой или нажимать на <Alt>+<Tab> для продолжения. Интерес представляет как причина этого явления, так и естественный способ бороться с ним. Надеюсь, есть что-то более прямое, чем предварительно вычислять активное окно и в конце передавать ему фокус.
 

joiner

Модератор
Локальный модератор
Сообщения
3,460
Репутация
609
Ибо это важное сообщение.
Вычисляем последнее активное окно и переключаемся. Помнится, на форуме был такой пример.
Вычисление, конечно, происходит функциями системы, которая знает всё)
 
Верх