如何将应用程序窗口作为属于另一个进程的窗口的子窗口托管?

时间:2009-02-06 20:54:40

标签: windows hosting embedding reparenting

我想将进程“A”的应用程序窗口托管到进程“B”的主窗口中,就好像“A”的窗口是MDI子窗口一样。这在Windows中可行吗?或者是否有一些技巧可以让我伪造这个?

顺便说一下,当它嵌入“B”窗口时,我想删除“A”窗口的标题栏(或者更好的是,所有非客户端的东西)。我认为这必须通过调整窗口样式或窗口类来实现,但我绝不是这些Win32复杂的专家。

1 个答案:

答案 0 :(得分:2)

可以托管窗口。通过调用SetParent函数来更改A的父HWND。要更改窗口样式,您需要使用GetWindowLong / SetWindowLong对来更改要清除的属性。

如果这是第三方应用程序(即不是你的应用程序),那么你可能会陷入困境,特别是如果窗口有任何主题或任何自定义窗口(例如,更改拖动)地区等)。