Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Восстановление окна из свёрнутого сосояния   Найти похожие ветки 

 
Awod   (2004-08-19 13:37) [0]

Есть форма нарисованная с использованием Delphi.
Форму сворачиваю и вывожу на передний план из другого приложения с использованием следующего кода:

ShowWindow(AHandle,SW_SHOW);
SetForegroundWindow(AHandle);
BringWindowToTop(AHandle);

НО при этом у формы которую разворачиваю остаётся активна меню Restore в контекстом меню окна и его нельзя минимизировать использую иконку системного меню. Всё начинает работать лишь после того как будет вызвана команда Restore из контекстного меню.
Почему так происходит и как с этим бороться?


 
Awod   (2004-08-19 16:32) [1]

Нашёл ответ сам :)
Всё вышеописанное надо применять не к самому окну, а к его OWNER-у, которым является Application. Дело в том что само окно (TForm) не обрабатывает команды WM_SYSCOMMAND->(SC_MAXIMIZE,SC_MINIMIZE) а отдаёт их на обработку Application-у. А тот в свою очередь видит что сам является в данный момент свёрнутым (команды отписанные в вопросе относились к главному окну приложения, но не к самому Application) в результате никакого сворачивания формы не происходило.



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.033 c
1-1094884314
demidofff
2004-09-11 10:31
2004.09.26
Самый быстрый алгоритм поиска в TStringList


3-1093497640
VS2002
2004-08-26 09:20
2004.09.26
TCP-порт для соединения клиента с сервером


4-1092209959
Rouse_
2004-08-11 11:39
2004.09.26
Глюк с завершением сервиса...


3-1093604914
Aleksandr.
2004-08-27 15:08
2004.09.26
Скажите, BDIInit надо вызывать в каждом потоке, работающем с БДЕ?


11-1080823624
nester
2004-04-01 16:47
2004.09.26
Почему иногда MsgOk выскакивает за формой?