Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как убрать фокус ввода с MessageBox [D7, WinXP]


deamon_t ©   (2005-08-03 22:32:00) 

Привет всем, есть MessageBox выводящийся паралельно с запуском программы в другом потоке, через 3 секунды он сам закрываеться если его не успели закрыть, при запуске если смотреть на шапки окон мессаджбокса и основной программы они обое активны, но после закрытия мессаджбокса программа уходит на задний план. Каким образом можно передать фокус окну программы не зная её хендла, т.е. мне наверное надо деактивировать мессаджбокс. Но почемуто нижеследующий код не срабатывает:

MessageBox(0,PChar(xxx),'Information',MB_OK or MB_SYSTEMMODAL or MB_ICONINFORMATION);
SendMessage(0,WM_KILLFOCUS,0,0);

Заранее спасибо за ответы


Leonid Troyanovsky   (2005-08-03 23:26:00) [1]


> deamon_t   (03.08.05 22:32)  


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

Возможные варианты:
1. Выбросить поток нах.
2. Выбросить MessageBox нах.
3. Выбросить обое нах.

> SendMessage(0,WM_KILLFOCUS,0,0);

Ну, и почитать хелп.
Оттуда можно даже почерпнуть как узнать хендл окна программы.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо