1

我正在尝试将 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));

这是循环运行的,因此我可以强制窗口连续进行这些设置,但这无济于事。有时上面的代码有效,有时无效。

4

2 回答 2

3

。如果两个程序都这样做了怎么办?.

于 2012-03-09T15:46:06.730 回答
0

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

1) 确保他们对用户可以打开的窗口拥有绝对的控制权。在我的情况下,用户将只能打开我的程序和 Internet Explorer。

2)第一次设置IE窗口显示设置为前台。

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

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

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

于 2012-03-16T12:50:44.553 回答