如何修复窗口顶部

时间:2014-08-07 22:41:16

标签: winapi setforegroundwindow

我使用SetForegroundWindow在顶部设置其他应用程序的窗口。如何在顶部修复此窗口?这意味着,一旦其他应用程序调用{​​{1}},我的窗口将位于我的固定窗口下方。

2 个答案:

答案 0 :(得分:0)

您可以在创建窗口时设置WS_EX_TOPMOST扩展样式,或者之后通过调用SetWindowPos HWND_TOPMOST作为第二个参数来使窗口位于最顶层。

但是请注意,没有办法让你的窗户停留在其他最顶层的窗口之上(即没有“绝对一切”的标志)。

答案 1 :(得分:0)

有两种方法可以确保您的窗口始终位于顶部:

  1. 如果您的窗口仍然是TOPMOST,请不断检查循环,如果不是,则将其设置为TOPMOST:

    if (::GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST) { // restore topmost }

  2. 通过SetWindowsHookEx(WH_CBT or WH_CALLWNDPROC)为Z顺序更改设置一个系统范围的挂钩,然后在您的窗口位于另一个窗口之下时采取适当的操作。