Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
4-1092652546
MetalFan
2004-08-16 14:35
2004.09.26
серийный номер CD/FD


1-1095032724
][ncognito
2004-09-13 03:45
2004.09.26
ТриВью опять


14-1094238166
KilkennyCat
2004-09-03 23:02
2004.09.26
Предложение модераторам.


1-1094556792
greenrul
2004-09-07 15:33
2004.09.26
миграция с Delphi на Cbuilder


1-1094716363
BPK
2004-09-09 11:52
2004.09.26
Нужно отобразить HTML




   Наверх