请问如何将DLL中的窗口变成Mdi子窗口?(50分)

  • 主题发起人 主题发起人 prog4
  • 开始时间 开始时间
P

prog4

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Mdi应用程序中调用DLL时只能显示模态或非模态窗口,能否将显示的窗口变成Mdi子窗口?


 
MDI in Dll:
在动态连接库中的MDI子窗体:

var
SaveDLLApp:TApplication;

procedure ShowMDIChildForm(MainApp:TApplication);
var
Child:TMDIForm;
begin
if not Assigned(SaveDllApp) then
begin
SaveDllApp:=Application;
Application:=MainApp;
end;
Child:=TMDIForm.Create(Application.MainForm);
Child.Show;
end;

procedure MyLibraryProc(Reason:integer);
begin
if Reason=DLL_PROCESS_DETACH then
if Assinged(SaveDllApp) then
Application:=SaveDllApp;
end;

export ShowMDIChildForm;

begin
DllProc:=@MyLibraryProc;
end.

在调用dll的应用中,用下述方法生MDI窗体;
procedure Form1.Button1Click(Sender:Tobject);
begin
ShowMDIChildForm(Application);
end;
 
接受答案了.
 
后退
顶部