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

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

Сохранение позиции окна [D6, WinXP]


Шмель ©   (2006-05-30 08:52:00) 

Добавил в программу сохранение позиций окон. Но работает это все как-то странно.

Значит суть такая. При закрытии окна - GetWindowPlacement
далее этот WINDOWPLACEMENT сохраняю в реестр. При запуске программы достаю настройки и SetWindowPlacement. Как-бы работает: позиция и размеры восстанавливаются. Но! Если окно было развернуто на весь экран,  то свернуть в окно не получается. По идее в этом WINDOWPLACEMENT есть rcNormalPosition, который должен хранить размеры и позицию окна в нормальном состоянии, и они там есть, но почему то окну на них наплевать! Почему???

Делал даже так: placement от WinRaR'а подсовывал своей программе - та же фигня. WinRar прекрасно сворачивается в окно, восстанавливая нормальные размеры, мои окна делать этого не хотят!


Шмель   (2006-05-31 11:17:00) [1]

Не а! Не то. Проблема в том ,что я SetWindowPlacement не на то сообщение вешал! Все все успешно работает!


ECM   (2006-05-30 19:42:00) [2]

typedef struct _WINDOWPLACEMENT {
   UINT length;
   UINT flags;
    UINT showCmd;
   POINT ptMinPosition;
   POINT ptMaxPosition;
   RECT rcNormalPosition;
} WINDOWPLACEMENT;


showCmd Specifies the current show state of the window

Обратите внимание на это поле при сохранении и восстановлении позиций окна - я уверен Ваши прблемы исчезнут... :))


Наверх

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