有没有办法保证Internet Explorer始终是最顶层的窗口?

时间:2012-03-09 15:42:24

标签: c++ internet-explorer windows-7 topmost

我正试图强迫一个Internet Explorer窗口成为TOPMOST。 Internet Explorer窗口顶部不应显示其他窗口。我必须使用Internet Explorer。我也在Windows 7中运行它。显然这有所不同,但我发现的所有信息都相当含糊,基本上是由人们喊“为什么这不容易!”。这是我的代码:

HWND ieWin = FindWindow(TEXT("IEFrame"), 0);
SetFocus(ieWin);
SetWindowPos(ieWin, HWND_TOPMOST, 0, 0, 100, 100, SWP_SHOWWINDOW );
UpdateWindow(GetParent(ieWin));

这是在一个循环中运行所以我可以强制窗口持续进行这些设置,但它没有帮助。有时上面的代码有效,有时却没有。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

经过多次讨论,我确实结束了使用循环强制窗口保持在最顶层。如果其他人真的需要在将来真的这样做,他们确实需要确保他们遵循以下步骤。

1)确保他们可以完全控制用户可以打开的窗口。在我的情况下,用户只能打开我的程序和Internet Explorer。

2)第一次将IE窗口设置为show时将其设置为前景。

3)循环将窗口设置为TOP_MOST时,不要将焦点设置为IE窗口。

4)确保你有SWP_SHOWWINDOW,SWP_NOSIZE和SWP_NOMOVE。否则,该循环将在每次迭代时改变窗口的大小和位置。

如果你可以尽可能地避免它,那就不要这样做了:P