Форум: "WinAPI";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизРазвернуть чужое окно Найти похожие ветки
← →
*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 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.05 c