Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Минимизация и восст окон

4.6K
27 марта 2004 года
mustlive
37 / / 27.03.2004
Не подскажете ли, как быть.

Из родительского окна создаю модальное окно. Очень хочу сделать так, чтобы при минимизации его родительское тоже минимизировалось, а потом при щелчке по панели оба восстанавливались. Делаю следующее: на эвенте дочернего окна Minimize написал следующее (выкрутился):
PostMessage(Parent->GetHandle(),WS_MINIMIZE,0,0)
Все ОК, оба окна свернулись. Но вот как из потом обратно восстановить? Свернутая фигня ни на что больше не реагирует :(

Проблема в получении инфо о дочернем окне. У меня не MDI интерфейс, дочернее окно - обычное, только модальное (не дает переходить в родительское пока не закроешь). Как узнать, кому посылать ShowWindow (если оно для этого подойдет)???

Вдобавок, программа не реагирует после сворачивания ни на что, и метод Show не ловится. Что-то неправильно, однозначно. Может быть, так вообще делать нельзя???
310
27 марта 2004 года
fellow
853 / / 17.03.2003
У Вас получается вот что: дочерняя форма модальная, из неё родительская форма (она же - главная в приложении, как я подозреваю) сворачивается на панель задач. НО! Родительская форма не может ничего делать - фокус не в ней, она неактивна. Поэтому она ни на что и не реагирует.
Может, стоило бы попробовать в момент сворачивания выйти из модальной формы, а при восстановлении снова форму показать. Но это издевательство над здравым смыслом. Для того, собственно, модальная форма и предназначена, чтобы быстро сделать неотложное дело и вернуться к нормальной работе приложения.
4.6K
27 марта 2004 года
mustlive
37 / / 27.03.2004
Цитата:
Originally posted by fellow
У Вас получается вот что: дочерняя форма модальная, из неё родительская форма (она же - главная в приложении, как я подозреваю) сворачивается на панель задач. НО! Родительская форма не может ничего делать - фокус не в ней, она неактивна. Поэтому она ни на что и не реагирует.



Похоже на правду. Наверное, так и есть.

Цитата:
Originally posted by fellow
Может, стоило бы попробовать в момент сворачивания выйти из модальной формы, а при восстановлении снова форму показать. Но это издевательство над здравым смыслом. Для того, собственно, модальная форма и предназначена, чтобы быстро сделать неотложное дело и вернуться к нормальной работе приложения.



Но как быть, если нужно что-то другое в это время сделать, чтобы десктоп был открыт? Немодальной я сделать ее не могу, поскольку начнут тыкать на главной форме куда не надо.

310
27 марта 2004 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by mustlive
Но как быть, если нужно что-то другое в это время сделать, чтобы десктоп был открыт? Немодальной я сделать ее не могу, поскольку начнут тыкать на главной форме куда не надо.



Может быть, скрыть главную форму?

4.6K
27 марта 2004 года
mustlive
37 / / 27.03.2004
Цитата:
Originally posted by fellow


Может быть, скрыть главную форму?



Мысли сходятся :)
Я залез сюда, чтобы поделиться своим "открытием" - вместо минимизации использую Hide. Но ты меня опередил :) Правда, по человечески не удалось поймать событие восстановления дочернего окна, пришлось сделать через Resize (через oldPosition). Главное, не забыть засунуть Show в закрытие дочернего окна, а то юзеры удивятся :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог