2

我想创建一个程序,允许我打开一个已经存在的程序的实例(我只有 exe)作为里面的窗口(我相信它叫做 mdi)

那是我能做的吗?谁能给我举个例子?

谢谢

4

3 回答 3

2

也许这就是您在这里寻找的答案。可以做到...查看给出的链接上的示例。

希望这会有所帮助,最好的问候,汤姆。

于 2009-12-02T18:05:38.237 回答
0

当 Windows 启动一个程序时,它的父级是桌面窗口。

如果你能以某种方式操纵它,它可能会起作用。

但是,我怀疑这是可能的,因为我为什么要允许您在您的窗口中运行我的应用程序?特别是MDI?除此之外 - 在子窗口中运行与在“主”窗口中运行并不完全相同。

话虽如此,有一个应用程序(想不出它的名字 OH)确实将单个应用程序放在选项卡中。如果您不在 Windows 7 上,那就太好了。Business of Software 论坛上的人可能会帮助您找到它。

于 2009-12-02T18:00:11.147 回答
0

好吧,在启动应用程序并存储其 PID 后,您可以开始监视创建的窗口,通过 CBTHook 或仅使用计时器和 GetWindows 来查找顶级窗口何时由相关 PID 创建。

然后您可以使用 SetParent 使该窗口成为您的 MDIChild 的子窗口(我怀疑您是否可以直接将其设置为您的 MDIChild )。

那应该让你继续前进。之后你会遇到什么我真的不知道。我想您必须关联您的应用程序或外部应用程序的任何移动,以便它们的窗口似乎粘在一起......

Maybo,您可以从外部应用程序 (Get/SetWindowsLong) 中删除标题。这样可以更好看...

于 2009-12-02T18:07:05.450 回答