2

一旦应用程序现在用作父应用程序,您将如何从表单中解开应用程序?

[DllImport("user32.dll")]
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

[DllImport("coredll.dll", SetLastError = true)]
private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

[DllImport("coredll.dll", SetLastError = true)]
private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

SetParent(setter, this.panel1.Handle);

解开我试过 SetParent(setter, setter); 没有运气。

4

2 回答 2

1

我知道这已经晚了,但我能够传入零以从父母身上脱钩:

SetParent(process.MainWindowHandle, IntPtr.Zero);

这会将桌面窗口设置为新的父窗口。

于 2016-05-17T14:12:33.573 回答
0

SetParent 返回上一个父窗口句柄。要“取消挂钩”窗口,您应该能够使用您最初返回的句柄调用 SetParent。

于 2013-03-04T06:32:34.117 回答