![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скрытие окна в панели задач [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)