我用来SetForegroundWindow
在顶部设置其他应用程序的窗口。我怎样才能在顶部修复这个窗口?这意味着,一旦其他一些应用程序调用SetForegroundWindow
,我的窗口将低于我的固定窗口。
问问题
140 次
2 回答
0
WS_EX_TOPMOST
您可以通过在创建窗口时设置扩展样式或之后调用SetWindowPos
withHWND_TOPMOST
作为第二个参数来使您的窗口位于最顶层。
但是请注意,没有办法让您的窗口停留在其他最顶层的窗口之上(即没有“绝对一切之上”标志)。
于 2014-08-07T22:43:10.280 回答
0
有两种方法可以确保您的窗口始终位于顶部:
如果您的窗口仍然是 TOPMOST,则不断检查循环,如果不是,则将其设置为 TOPMOST:
if (::GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST) { // restore topmost }
通过 为 Z 顺序更改设置系统范围的挂钩
SetWindowsHookEx(WH_CBT or WH_CALLWNDPROC)
,然后在您的窗口位于另一个窗口下方时采取适当的措施。
于 2014-09-06T01:07:31.133 回答