SetWindowPos 插入之后,而不是之前?

Qub*_*ub1 2 c# winapi overlay

好的,所以我正在尝试将我的表单覆盖在另一个应用程序之上。现在,作为最后一步,我需要确保表单的 z-index 始终位于我正在覆盖的应用程序上方。我很确定我需要使用 SetWindowPos ( https://msdn.microsoft.com/en-us/library/windows/desktop/ms633545%28v=vs.85%29.aspx ) 来做到这一点,它有允许我设置窗口的 z-index 的参数。但是,它只允许我将它设置为我试图覆盖的应用程序下的 z-index。我如何使用该函数来覆盖应用程序?我说的hWndInsertAfter参数就是参数。

这就是我现在使用代码的方式(它是表单的基础): SetWindowPos(this.Handle, clientHandle, clientTopLeft.X, clientTopLeft.Y, clientWidth, clientHeight, SWP.SHOWWINDOW);

谢谢!

Qub*_*ub1 5

啊,所以答案很明显...我只需要使用相同的功能,但反转前两个参数以覆盖我下的另一个应用程序。

这是我使用的代码:

SetWindowPos(this.Handle, IntPtr.Zero, clientTopLeft.X, clientTopLeft.Y, clientWidth, clientHeight, SWP.SHOWWINDOW);
SetWindowPos(clientHandle, this.Handle, 0, 0, 0, 0, SWP.NOMOVE | SWP.NOSIZE);
Run Code Online (Sandbox Code Playgroud)