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

Вниз

Развернуть чужое окно   Найти похожие ветки 

 
*Pavel ©   (2005-11-29 11:21) [0]

Пользуюсь следующим:
  ShowWindow(hwnd,  SW_SHOW);
  SetForegroundWindow(hwnd);
Если окно не свернуто в панель задач - работает сколько угодно раз (как и положено перемещается на передний план). Но стоит свернуть - развернет его единажды, затем его можно только закрыть, свернуть никак не получается. Зависит ли это от ОС ? Если да, то как сделать универсальное приложение т.е. работоспособное от W98 до XP ?


 
han_malign ©   (2005-11-29 11:33) [1]

попробуй докопаться до "главного" окна(для Delphi приложений - это Application):
var _wnd, wnd: HWND;
begin
   wnd:= hwnd;
    _wnd:= GetParent(wnd);
   while(_wnd <> 0)do begin
        wnd:= _wnd;
       _wnd:= GetParent(wnd);
   end;
   ShowWindow(wnd,  SW_SHOW);
   SetForegroundWindow(hwnd);
...

- у него флаг Visible не выставляется(при показывании дочернего окна минуя главное), поэтому свернуть больше не получается.


 
*Pavel ©   (2005-11-29 12:08) [2]

Пробовал так:

hwnd := FindWindow("TfrmMain", "My programm name");

//debug window -  hwnd = 8601822

_hwnd:= GetParent(hwnd);
//debug window -  _hwnd = 0

Выходит, что главнее окна, чем это просто нет.


 
ANB ©   (2005-11-29 14:54) [3]


> *Pavel ©   (29.11.05 12:08) [2]

Все обычные (не MDI) формы твоего приложения с точки зрения виндовс являются окнами верхнего уровня. Следовательно у них нету парента.
Окно Application всегда невидимо. Если приложений запущено несколько, то оптимальный способ различать их по ProcessID (PID).

ЗЫ.Поднятие окна на передний план постоянно блокируется от версии к версии. SetForegroundWindow далеко не всегда помогает в NT.


 
Leonid Troyanovsky ©   (2005-11-29 15:10) [4]


> *Pavel ©   (29.11.05 12:08) [2]
> Пробовал так:

> hwnd := FindWindow("TfrmMain", "My programm name");
..
> _hwnd:= GetParent(hwnd);


Application для Form выступает несколько в другом отношении,
т.е., AppWnd := GetWindowLong(hwnd, GWL_OWNER)

См. также:

http://groups.google.com/group/fido7.su.win32.prog/msg/1984ffcf8ae2b539

--
Regards, LVT.


 
*Pavel ©   (2005-11-29 16:34) [5]

Все заработало, только не с GWL_OWNER, а GWL_HWNDPARENT.
Thank"s


 
Leonid Troyanovsky ©   (2005-11-30 09:47) [6]


> *Pavel ©   (29.11.05 16:34) [5]
> Все заработало, только не с GWL_OWNER, а GWL_HWNDPARENT.


Млин, конечно, имел ввиду именно GWL_HWNDPARENT,
бо первого в природе не существует.
Sorry.

--
Regards, LVT.


 
psa247 ©   (2005-12-03 10:55) [7]

Скажите, что происходит с приложением при клике на "свернуть все окна" ?



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

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

Наверх




Память: 0.48 MB
Время: 0.052 c
1-1137329594
SergP
2006-01-15 15:53
2006.02.19
Array ==> Tdataset


15-1138632640
Arazel
2006-01-30 17:50
2006.02.19
Где можно скачать Примеры базы данных на DELPHI


15-1138366572
Андрей1234567890
2006-01-27 15:56
2006.02.19
Коллекции иконок


15-1138706670
YurikGL
2006-01-31 14:24
2006.02.19
ГОСТ на маркировку


15-1138448627
vidiv
2006-01-28 14:43
2006.02.19
Ваше мнение о человеке по фотогрфии.