我想创建一个程序,允许我打开一个已经存在的程序的实例(我只有 exe)作为里面的窗口(我相信它叫做 mdi)
那是我能做的吗?谁能给我举个例子?
谢谢
也许这就是您在这里寻找的答案。可以做到...查看给出的链接上的示例。
希望这会有所帮助,最好的问候,汤姆。
当 Windows 启动一个程序时,它的父级是桌面窗口。
如果你能以某种方式操纵它,它可能会起作用。
但是,我怀疑这是可能的,因为我为什么要允许您在您的窗口中运行我的应用程序?特别是MDI?除此之外 - 在子窗口中运行与在“主”窗口中运行并不完全相同。
话虽如此,有一个应用程序(想不出它的名字 OH)确实将单个应用程序放在选项卡中。如果您不在 Windows 7 上,那就太好了。Business of Software 论坛上的人可能会帮助您找到它。
好吧,在启动应用程序并存储其 PID 后,您可以开始监视创建的窗口,通过 CBTHook 或仅使用计时器和 GetWindows 来查找顶级窗口何时由相关 PID 创建。
然后您可以使用 SetParent 使该窗口成为您的 MDIChild 的子窗口(我怀疑您是否可以直接将其设置为您的 MDIChild )。
那应该让你继续前进。之后你会遇到什么我真的不知道。我想您必须关联您的应用程序或外部应用程序的任何移动,以便它们的窗口似乎粘在一起......
Maybo,您可以从外部应用程序 (Get/SetWindowsLong) 中删除标题。这样可以更好看...