SetParent挂钩,你怎么解开?

时间:2013-03-04 05:51:01

标签: c# winforms winapi release

如果您的表单现在将其用作父目录,您将如何从表单中取消该程序?

[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);没有运气。

2 个答案:

答案 0 :(得分:1)

我知道这已经很晚了,但是我能够将零传递给父母:

SetParent(process.MainWindowHandle, IntPtr.Zero);

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

答案 1 :(得分:0)

SetParent返回上一个父窗口句柄。要“解开”窗口,您应该可以使用最初返回的句柄调用SetParent。