Как вывести окно наверх? - PullRequest
0 голосов
/ 15 декабря 2010

Я создал этот код, который выводит окно Internet Explorer наверх.

    public void avtivateIEWin(IntPtr win){
        int foregrRes = SetForegroundWindow(win);
        log("foregrRes:" + foregrRes);
        ShowWindowAsync(win, SW_SHOW);
        BringWindowToTop(win);
        SetActiveWindow(win);
        SwitchToThisWindow(win, true); 
        SetFocus(win); 

}

(цель моей программы - эмулировать поведение Alt-Tab для переключения между окнами моего приложения, которые являются окнами IE)

Да .. Я включил здесь все возможные функции ... и это работает Хорошо, если у меня только одно окно IE!

Но когда у меня есть 2 окна IE, одно из них открывается с помощью функции showModalDialog / showModlessDialog - это не работает.

Это выглядит странно, но когда я переключаюсь с модального окна на его родителя, фокус переходит с модального окна на родителя, но модальное окно все еще находится сверху.

Пожалуйста, сообщите.

Спасибо

1 Ответ

1 голос
/ 15 декабря 2010

Вот как работают модальные окна - они всегда будут отображаться над родительским окном, когда родительский виден, и изменить это поведение невозможно.

MSDN имеет больше информации о владельце windows , в частности, упоминается, что:

Собственное окно всегда находится над своим владельцем в z-порядке.

...