【发布时间】:2019-06-04 20:08:58
【问题描述】:
我的 C# 项目启动了一些其他进程,这些进程创建了自己的窗口。显示所有这些窗口很麻烦 - 有没有办法剪辑/遮盖这些窗口(我的项目不拥有),以便只显示其中的一小部分并能够与之交互?
例如将 wHnd 与 Rectangle 一起传递的东西。
这是存在的吗?
【问题讨论】:
-
你可以用ShowWindow隐藏它们吗?
-
您是否尝试创建类似于 MDI 窗口的东西,但使用来自不同进程的子窗口?
-
因此您将启动进程,调用WaitForInputIdle,然后将MainWindowHandle 传递给上述 ShowWindow() API。
-
是的。只需 Win32 即可完成 MDI。 docs.microsoft.com/en-us/windows/desktop/winmsg/…
-
您可以拥有一个与父窗口不同进程的子窗口。 Google Chrome、Internet Explorer、Edge 和我公司的主要产品(彭博终端)广泛执行此操作。然而,这有许多的陷阱。而且我从来没有尝试过使用 MDI 窗口来做到这一点。
标签: c# winapi window pinvoke dwm