每
the documentation
以下内容:
setParent函数
参数
(…)
HwndNewParent公司
[输入,可选]
类型:
HWND
新父窗口的句柄。如果这个参数是
无效的
,桌面窗口将成为新的父窗口。(…)
所以你只要打个电话
SetParent()
再次将第二个参数设置为
Nothing
是的。
'Class-level variable (so that you can reference the window later on again).
Dim NotepadHandle As IntPtr
'Adding it into your application.
NotepadHandle = FindWindow(Nothing, "Untitled - Notepad")
SetParent(NotepadHandle, TabControl1.SelectedTab.Handle)
'Removing it from your application.
SetParent(NotepadHandle, Nothing)
重要:
小心使用!更改属于另一个进程(或者仅仅是另一个线程,甚至是您自己的应用程序中的线程)的窗口的父窗口可能会导致问题,特别是当该窗口从顶级窗口(即,除了桌面之外没有父窗口的独立窗口)移动到子窗口时。
如果处理窗口的应用程序不是为支持此功能而设计的,则可能会导致各种问题,并且您永远无法确定可能发生的情况,因为这完全取决于应用程序的编码方式以及它可能决定或被指示执行的操作。
我建议阅读
link
那个
IInspectable
共享。它更详细地解释了这种情况,并有助于给出一个视角。