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

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

Скрытие окна в панели задач [D7, WinXP]


~ShamaN~ ©   (2006-01-11 17:16:00) 

Подскажите, каким образом можно скрыть главное окноиз панели задач и поместить туда дочернее окно. Также интересен обратный процесс :)


~ShamaN~   (2006-01-12 17:03:00) [1]

simpson, это обычное VCL


simpson   (2006-01-11 21:31:00) [2]

~ShamaN~ ©   (11.01.06 17:16)

Давай определимся вначале: это нужно проделать с VCL-формами в обычном приложении, использующем VCL, или речь идет о "чистом" Windows API?


~ShamaN~   (2006-01-11 18:03:00) [3]

я подряд все делаю:
SetWindowLong(form1.Handle,GWL_EXSTYLE,GetWindowLong(form1.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
SetWindowLong(form1.Handle,GWL_STYLE,GetWindowLong(form1.Handle,GWL_STYLE) or WS_CHILD);
setparent(form1.handle,form2.handle)


VirEx   (2006-01-11 18:01:00) [4]


>  [2] ~ShamaN~ ©   (11.01.06 17:56)
> setparent(form1.handle,form2.handle)
> не работает

прежде чем это сделать нужно изменить стиль окна:
меняешь стиль чтобы сделать дочерним окном:
SetWindowLong(form1.Handle,GWL_STYLE,GetWindowLong(form1.Handle,GWL_STYLE) or WS_CHILD);


~ShamaN~   (2006-01-11 18:01:00) [5]

там синтаксис, кажется, не такой....


~ShamaN~   (2006-01-11 18:00:00) [6]

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


VirEx   (2006-01-11 17:58:00) [7]


> делаешь окно формы1 дочерним окну формы2:
> setparent(form1.handle,form2.handle)

а, ну если добавить в панели задач то сначало найди хэндл (handle) панели задачь и вместо form2.handle туда вставь
gHandle:=FindWindow('Shell_TrayWnd',nil); //это панель задачь
gHandle := GetWindow(gHandle, GW_CHILD);
gHandle := GetNextWindow(gHandle, GW_HWNDNEXT);
gHandle := GetWindow(gHandle, GW_CHILD); //это "часики"


~ShamaN~   (2006-01-11 17:56:00) [8]

setparent(form1.handle,form2.handle)
не работает


VirEx   (2006-01-11 17:53:00) [9]

для того чтобы убрать с панели задачь меняешь стиль окна:
SetWindowLong(form1.Handle,GWL_EXSTYLE,GetWindowLong(form1.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);

меняешь стиль чтобы сделать дочерним окном:
SetWindowLong(form1.Handle,GWL_STYLE,GetWindowLong(form1.Handle,GWL_STYLE) or WS_CHILD);

делаешь окно формы1 дочерним окну формы2:
setparent(form1.handle,form2.handle)


Наверх

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