我正试图强迫一个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));
这是在一个循环中运行所以我可以强制窗口持续进行这些设置,但它没有帮助。有时上面的代码有效,有时却没有。
答案 0 :(得分:3)
答案 1 :(得分:0)
经过多次讨论,我确实结束了使用循环强制窗口保持在最顶层。如果其他人真的需要在将来真的这样做,他们确实需要确保他们遵循以下步骤。
1)确保他们可以完全控制用户可以打开的窗口。在我的情况下,用户只能打开我的程序和Internet Explorer。
2)第一次将IE窗口设置为show时将其设置为前景。
3)循环将窗口设置为TOP_MOST时,不要将焦点设置为IE窗口。
4)确保你有SWP_SHOWWINDOW,SWP_NOSIZE和SWP_NOMOVE。否则,该循环将在每次迭代时改变窗口的大小和位置。
如果你可以尽可能地避免它,那就不要这样做了:P