当前位置:问百书>百科知识>C#怎么样把另一个应用程序域的Form窗口作为当前应用程序域中MDI窗口容器的子窗口

C#怎么样把另一个应用程序域的Form窗口作为当前应用程序域中MDI窗口容器的子窗口

2023-01-23 15:46:19 编辑:join 浏览量:628

C#怎么样把另一个应用程序域的Form窗口作为当前应用程序域中MDI窗口容器的子窗口

简单说下原理吧:

假设A程序以及运行,需要在A中放一个容器(A本身也可以)去存放一会将要运行的B程序。

启动B程序,并获取B程序的句柄,这个需要调用Win32 API,引用如下

        [DllImport("user32.dll", EntryPoint = "FindWindow")]

        public static extern int FindWindow(

            string lpClassName,

            string lpWindowName

        );

    3. 还是调用Win32 API,将A程序的容器设置成B容器的父对象,引用如下        

        [DllImport("user32.dll", EntryPoint = "SetParent")]

        public static extern int SetParent(

            int hWndChild,

            int hWndNewParent

        );

A程序中的代码:

        System.Diagnostics.Process.Start("B.exe");

        SetParent(FindWindow(null, "B程序的Title"), this.Handle.ToInt32());

当然了,获取B程序的句柄,办法更多,直接用processinfo最好,只需要一句代码即可:

        SetParent(System.Diagnostics.Process.Start("B.exe").Handle, this.Handle.ToInt32());

标签:窗口,应用程序,C#

版权声明:文章由 问百书 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.wenbaishu.com/article/7109.html
热门文章
二维码