我正在使用Delphi的MDI應用程序。如何在我的應用程序的MDI窗口中顯示另一個進程的窗口
我想顯示由我的應用程序的MDI子窗口中的其他應用程序(我也構建)生成的交互式視圖。
當用戶在我的應用程序中選擇特定的視圖類型時,它將啓動另一個應用程序的實例,該實例將生成一個或多個顯示在我的應用程序的MDI子窗口中的數據視圖。
我希望這很清楚。
我正在使用Delphi的MDI應用程序。如何在我的應用程序的MDI窗口中顯示另一個進程的窗口
我想顯示由我的應用程序的MDI子窗口中的其他應用程序(我也構建)生成的交互式視圖。
當用戶在我的應用程序中選擇特定的視圖類型時,它將啓動另一個應用程序的實例,該實例將生成一個或多個顯示在我的應用程序的MDI子窗口中的數據視圖。
我希望這很清楚。
您可以產生其他應用程序,獲取與該進程關聯的窗口句柄,然後將該窗口句柄的Parent設置爲與MDI應用程序中的窗體或面板關聯的句柄。
看看下面的Win32函數...
您可能還需要...
如果你想模塊化你的應用程序,我認爲最好使用dll來定義表單。
爲此,您可以在dll或dpk中定義表單類,然後從應用程序中加載它。
如果您正在使用MDI窗體工作,我建議你使用普通的空MDI的形式和展示裏面取出邊界您的DLL的形式,這樣的:
DllForm.FormStyle:=fsNormal;
DllForm.BorderStyle:=bsNone;
DllForm.Parent := MDIForm;
DllForm.Align := alClient;
您可以找到here有關加載形式的文章從一個DLL。
爲什麼不寫一個ActiveX控件?它專爲這類工作而設計(例如,考慮Outlook如何使用Word文本編輯器)。而且,通過這種方式,您的應用程序也可以與非Delphi應用程序進行交互。您可以在MDI窗口中顯示非Delphi應用程序,例如Word和Excel,並且您的應用程序將能夠在非Delphi ActiveX主機(如Word)中顯示其內容。