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

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

Подвинуть окна


jonni ©   (2003-08-25 16:09:00) 

проблема вот в чём:
я астанавливаб новий размер WorkArea

rcWork.Top:=50;
rcWork.Left:=50;
rcWork.Bottom:=GetSystemMetrics(SM_CYSCREEN);
rcWork.Right:=GetSystemMetrics(SM_CXSCREEN);
SystemParametersInfo (SPI_SETWORKAREA, 0, @rcWork, SPIF_SENDCHANGE);

и для верности засылаю сообщение:
SendMessage(HWND_BROADCAST,WM_WININICHANGE,0,0);

при этом только Desktop и моя программа меняют положение и размеры.... остальные окна не реагирубт на это, только если их свернуть и зановоразвернуть....

как жe можно застваить окна переместиться и изминить размери при изменение WorkArea.... так же как при перемещение TaskBar.??????????/

(регистрация сврего приложения как AppBar не подходит)


DVM   (2003-08-26 13:14:00) [1]

Действительно интересно, это встроенная возможность окон/системы или функция оболочки? Без эксплорера все это не работает (имеется ввиду то что написано выше, т.е. автоупорядочивание окон при перемещении одного из аппбаров). Из этого можно предположить, что это функция оболочки/эксплорера. Но какая?

Может кто знает???

Собственно можно самому написать подобную функцию, циклически перебирая все топ-левел окна и подстраивать их размеры/двигать их. Но не хотелось бы изобретать заново велосипед. К тому же не совсем ясно по какому критерию отбирать окна которые должны реагировать на изменения рабочей области.

Функция наверняка в shell32.dll и недокументирована. Хотя может быть и в user32.dll если это встроенная функция системы.


jonni   (2003-08-25 20:20:00) [2]

:(


Наверх

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