讓您希望置頂的窗口歸其他窗口所有。擁有的窗戶始終位於其所有者之上。該documentation說:
擁有的窗口
重疊或彈出窗口可以通過另一個重疊或 彈出窗口所擁有。被擁有的地方對窗戶有幾個限制。
- 一個擁有的窗口始終在z所有者的上方。
- 系統在其擁有者被銷燬時自動銷燬擁有的窗口。
- 擁有窗口在其所有者最小化時隱藏。
只有重疊或彈出窗口可以是所有者窗口;一個孩子 窗口不能成爲所有者窗口。當應用程序使用 WS_OVERLAPPED或WS_POPUP樣式創建窗口時,通過將所有者的窗口句柄指定爲CreateWindowEx的參數hwndParent 來創建擁有的 窗口。 hwndParent參數必須 標識重疊窗口或彈出窗口。如果hwndParent標識子窗口 ,則系統將所有權分配給子窗口的頂級父項 窗口。在創建擁有的窗口之後,應用程序不能將該窗口的所有權轉移到另一個窗口。
默認情況下,對話框和消息框是擁有的窗口。 應用程序在調用 創建對話框或消息框的函數時指定所有者窗口。
應用程序可以使用GetWindow函數和GW_OWNER標誌 來檢索窗口所有者的句柄。
因此,請指定CreateWindowEx
的hWndParent
參數的窗口的所有者。該文檔有點難以遵循。它說:
hWndParent [在,可選]
正在創建句柄窗口的父或所有者窗口。要創建一個子窗口或一個擁有的窗口,請提供一個有效的窗口句柄。此參數對於彈出窗口是可選的。
這是得到的是參數重載。對於彈出窗口,此參數指定所有者。而當你想創建一個無主窗口通過NULL
。這就是這個參數對於彈出窗口是可選的。對於子窗口,您在此參數中傳遞窗口的父窗口。
現在,對於您的情況,您希望創建一個擁有的彈出式窗口,並在此參數中傳遞所有者。
'SetWindowPos(hwndTarget,HWND_TOP,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE)'應該這樣做。 – enhzflep
@enhzflep這不會阻止窗口在其他窗口後面。它現在剛剛達到頂峯。 –
謝謝@DavidHeffernan--顯然是睡覺的時候。對我來說這是多麼愚蠢的疏忽。 – enhzflep