Mfc 多进程渲染到一个窗口

Mfc 多进程渲染到一个窗口,mfc,Mfc,多进程渲染到一个窗口 两个进程,两个窗口,但一个窗口充当另一个窗口的子窗口。 例如,窗口包含编辑ctrl,但编辑ctrl属于另一个进程。 如何实现这样一个MFC应用程序?我认为让多个线程管理UI内容根本不是一个好主意 您应该只有一个线程负责UI(主线程),并根据需要创建尽可能多的工作线程。但这些工作线程不直接访问UI,而是通知(SendMessage/PostMessage)主线程执行UI工作 窗口及其子进程必须属于同一进程。句号 您可以做的是将进程(如stdout)的输出重定向到管道。GUI进

多进程渲染到一个窗口

两个进程,两个窗口,但一个窗口充当另一个窗口的子窗口。 例如,窗口包含编辑ctrl,但编辑ctrl属于另一个进程。
如何实现这样一个MFC应用程序?

我认为让多个线程管理UI内容根本不是一个好主意


您应该只有一个线程负责UI(主线程),并根据需要创建尽可能多的工作线程。但这些工作线程不直接访问UI,而是通知(SendMessage/PostMessage)主线程执行UI工作

窗口及其子进程必须属于同一进程。句号

您可以做的是将进程(如stdout)的输出重定向到管道。GUI进程依次读取管道并将内容显示到专用子窗口(编辑框或其他)


这可能会有所帮助。

实际上,您可以实现这一点,但有一些限制

例如,您可以在应用程序中嵌入MS word。Word窗口作为子窗口嵌入到应用程序中。但实际上,还有另一个进程winword.exe

您的应用程序充当复合文档容器,嵌入式应用程序充当复合文档服务器


请从MSDN中查找“复合文档”相关内容。

对不起,您的回答与我的问题无关。关于我的问题,chrome是一个很好的例子,但我没有时间阅读源代码。“窗口和它的子窗口必须属于同一个进程。句号。”-不完全是。窗口层次结构必须属于同一线程。每个线程对输入进行虚拟化,每个线程都有自己的专用输入和消息队列。(注意:如果所有参与的线程都准备好处理跨越线程边界的窗口层次结构,那么就有可能(尽管非常复杂)在多个线程之间传播GUI。在这种情况下,线程是否属于同一个进程或不同的进程并不重要。)@IInspectable:非常有趣(即使在这种情况下对OP没有帮助)。谢谢!