-1

我用来SetForegroundWindow在顶部设置其他应用程序的窗口。我怎样才能在顶部修复这个窗口?这意味着,一旦其他一些应用程序调用SetForegroundWindow,我的窗口将低于我的固定窗口。

4

2 回答 2

0

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

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

于 2014-08-07T22:43:10.280 回答
0

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

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

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

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

于 2014-09-06T01:07:31.133 回答