我使用SetForegroundWindow
在顶部设置其他应用程序的窗口。如何在顶部修复此窗口?这意味着,一旦其他应用程序调用{{1}},我的窗口将位于我的固定窗口下方。
答案 0 :(得分:0)
您可以在创建窗口时设置WS_EX_TOPMOST
扩展样式,或者之后通过调用SetWindowPos
HWND_TOPMOST
作为第二个参数来使窗口位于最顶层。
但是请注意,没有办法让你的窗户停留在其他最顶层的窗口之上(即没有“绝对一切”的标志)。
答案 1 :(得分:0)
有两种方法可以确保您的窗口始终位于顶部:
如果您的窗口仍然是TOPMOST,请不断检查循环,如果不是,则将其设置为TOPMOST:
if (::GetWindowLong(hwnd, GWL_EXSTYLE) & WS_EX_TOPMOST)
{
// restore topmost
}
通过SetWindowsHookEx(WH_CBT or WH_CALLWNDPROC)
为Z顺序更改设置一个系统范围的挂钩,然后在您的窗口位于另一个窗口之下时采取适当的操作。