强制窗口已经高于最顶层的窗口(如任务pipe理器)

我有一个窗口,我想显示在上面的一切。 我的代码能够成功强制它几乎在每个窗口之上,除了其他最顶级的窗口。 这是我使用的代码:

SetWindowPos(getSDLWindow(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); 

每当我点击鼠标中键(我使用鼠标钩来触发它)时,这行就会被执行。

一旦我启动了我的程序,并从中间点击一次,我的窗口仍然高于所有“常规”窗口。

但是,所有“特殊窗口”似乎与我的应用程序窗口属于同一个类别,即在我的应用程序窗口上方显示特殊窗口。 在这个特殊的窗口类别中,任务栏(使用开始菜单似乎也可以激活),右键菜单(甚至当被普通的窗口产生时),任务pipe理器,我相信很多其他的。 事实上,我相当肯定任何其他“最高”的窗口都会这样做。 看来,通过我的SetWindowPos调用,我已经提升了我的应用程序窗口的状态到最上面的窗口。

最好的是,我可以启动任务pipe理器,将其移到我的应用程序窗口(以便它现在覆盖它),然后在任务pipe理器中点击鼠标中键,现在我的应用程序窗口在前面popup(焦点保持不变在任务pipe理器)。 这很好,但我想进一步,让我的窗口将无论如何顶部。

除了在循环中重复发射SetWindowPos ,还有什么方法可以完成这个任务吗? 我想尽可能避免这种情况。

不,因为没有“超级最高”的标志 。

你也不应该这样,因为所有超级最顶级的窗口都会相互争夺控制权 。