我的窗口应该位于我无法控制的特定“目标”窗口的顶部。停止作为最上方的窗口
当目标窗口被激活时,我呼叫SetWindowPos
和HWND_TOPMOST
将我的窗口置于其上,而目标仍然可以是活动窗口。
当目标窗口不再是前景窗口时,我希望我的窗口仍然位于目标窗口的顶部,但不再是最顶层的,所以其他窗口不会覆盖它。
两个想法我有:
呼叫
SetWindowPos
与hWndInsertAfter
是刚刚激活的窗口。当刚激活的窗口是最顶层的时候,这会失败,因为我的窗口不会丢失最高层的状态。与此相关的另一个问题:如果刚激活的窗口是桌面,那么我的窗口放置在目标窗口下方。致电
SetWindowPos
与HWND_NOTOPMOST
失去最高地位。但是,这将我的窗口带到了所有非最顶层窗口的顶部,因此它覆盖了刚刚激活的窗口。为了解决这个问题,我必须再次将刚刚激活的窗口与另一个SetWindowPos
与HWND_TOP
一起。这感觉就像做错了一样,可能会导致闪烁。
是否有可能有一个窗口只是停在最顶层,并将其放置在当前的前台窗口下方?
朵蒙特手段。所以如果没有其他窗口被标记为最上面,那么你的窗口将会是最上面的。为什么不创建模态对话框?它只会用于您的应用程序。 –
@ GaneshR。如上所述,我无法控制目标窗口。目标窗口也应该是活动的,而我的窗口在上面。 – typ1232