是否可以在Winforms窗口中抢夺并托管win32 hwnd控件?

时间:2014-04-30 20:23:53

标签: c# .net winforms winapi

我在网上进行了搜索,但他们正在讨论如何为WPF做这个。

想象一下如下所示的win32应用程序,并假设应用程序本身允许创建新的Windows窗体窗口作为子窗口。所以他们可以互相交谈,我可以发送按键,并控制父应用程序。

我想要做的是剥离图像中列出的列表视图并将其托管在Winforms窗口中。所以它存放在浮动在顶部的Winforms窗口中,并在我的Winforms窗口移动时移动控件。

我可以从父应用程序的.NET API获取hWnd句柄,但我不确定我想要的是否可行。如果是这样,怎么样?

enter image description here

2 个答案:

答案 0 :(得分:0)

除了不同的应用程序角度,您可以使用NativeWindow类在WinForms内部托管Win32窗口。

答案 1 :(得分:-1)

如果您使用SetParent函数,那么它可以正常工作:

http://www.pinvoke.net/default.aspx/user32.setparent

您可能必须使用MoveWindow函数将控件移动到Winforms窗口中的适当位置,并可能调整它的大小:

http://www.pinvoke.net/default.aspx/user32.movewindow