我的窗口應該位於我無法控制的特定「目標」窗口的頂部。停止作爲最上方的窗口
當目標窗口被激活時,我呼叫SetWindowPos
和HWND_TOPMOST
將我的窗口置於其上,而目標仍然可以是活動窗口。
當目標窗口不再是前景窗口時,我希望我的窗口仍然位於目標窗口的頂部,但不再是最頂層的,所以其他窗口不會覆蓋它。
兩個想法我有:
呼叫
SetWindowPos
與hWndInsertAfter
是剛剛激活的窗口。當剛激活的窗口是最頂層的時候,這會失敗,因爲我的窗口不會丟失最高層的狀態。與此相關的另一個問題:如果剛激活的窗口是桌面,那麼我的窗口放置在目標窗口下方。致電
SetWindowPos
與HWND_NOTOPMOST
失去最高地位。但是,這將我的窗口帶到了所有非最頂層窗口的頂部,因此它覆蓋了剛剛激活的窗口。爲了解決這個問題,我必須再次將剛剛激活的窗口與另一個SetWindowPos
與HWND_TOP
一起。這感覺就像做錯了一樣,可能會導致閃爍。
是否有可能有一個窗口只是停在最頂層,並將其放置在當前的前臺窗口下方?
朵蒙特手段。所以如果沒有其他窗口被標記爲最上面,那麼你的窗口將會是最上面的。爲什麼不創建模態對話框?它只會用於您的應用程序。 –
@ GaneshR。如上所述,我無法控制目標窗口。目標窗口也應該是活動的,而我的窗口在上面。 – typ1232