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

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

Как поместить форму ниже всех остальных и оставить ее активной? [D5, WinXP]


[BAD]Angel ©   (2004-08-20 12:05:00) 

Хитрый вопрос:
Как поместить форму ниже всех остальных и оставить ее активной?
(т.е. чтобы когда она была активной, то не выскакивала на передний план)


TUser   (2004-08-20 15:16:00) [1]

Во всяком случае, в винде окно может оставаться активным, будучи не-Foreground.


Юрий Зотов   (2004-08-20 13:58:00) [2]

Если в обработчике OnShow вызвать

SetWindowPos(Handle, HWND_BOTTOM, 0, 0, 0, 0,
 SWP_NOMOVE or SWP_NOSIZE)

а ПОСЛЕ этого в обработчике WM_WINDOWPOSCHANGING запретить изменение ее Z-порядка (устанавливая флаг SWP_NOZORDER перед вызовом inherited), то форма всегда будет оставаться на заднем плане.

Будет ли она при этом иметь возможность становиться активной - не знаю. Вероятно, будет. Только для формы на заднем плане вряд ли вообще нужна активность - и тогда ее можно запретить в том же обработчике установкой флага SWP_NOACTIVATE.


VMcL   (2004-08-20 12:30:00) [3]

>> [BAD]Angel ©  (20.08.04 12:05)

SetWindowPos w/ HWND_BOTTOM
?


Digitman   (2004-08-20 12:19:00) [4]

интересно, за каким .. это может реально понадобиться ?


PVOzerski   (2004-08-20 12:12:00) [5]

Разве что все остальные формы сделать always on top (FormStyle:=fsStayOnTop)...


Наверх

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