Главная страница
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.044 c
15-1138630865
ferr
2006-01-30 17:21
2006.02.19
Философский вопрос или заметка об иконке.


2-1138912475
HITMAN
2006-02-02 23:34
2006.02.19
ListBox1 Ошибку не магу не обойти


2-1138784272
dabreezy
2006-02-01 11:57
2006.02.19
Вопрос по TiniFile


15-1138250776
begin...end
2006-01-26 07:46
2006.02.19
С Днём рождения! 26 января


2-1138729598
The Sound
2006-01-31 20:46
2006.02.19
Из чара(ord), в нормальный вид.