窗体B在DLL中,在窗体A中调用,A是MDI主窗体,我想让B成为A的子窗体,怎么办???
 谢谢!

解决方案 »

  1.   

    把A的句柄传到DLL中操作,在DLL中用FindControl()找到A窗口,窗口B建时指定它的父为A窗口
    试试看看!
      

  2.   

    procedure TMainForm.StartClick(Sender: TObject);
    var
       DllHandle: THandle;
       ProcAddr: FarProc;
       ProvaChild: T_ProvaChild;
    begin   
       DllHandle := LoadLibrary('ProjectDll');
       ProcAddr := GetProcAddress(DllHandle, 'ProvaChild');
       if ProcAddr <> nil then
       begin
          ProvaChild := ProcAddr;
          ProvaChild(Application,Self);
       end;
    end;
      

  3.   

    从Dll中调用MDI子窗体和从DLL中直接调用一个普通窗体的唯一区别就是前者的窗体FormStyle属性需要设置为fsMDIChild,仅此而已!
      

  4.   

    关键是把A窗体的句柄传到DLL中,在创建B窗体时,将A窗体作为B窗体的父窗体。
      

  5.   

    A作为B的父窗体???那是MDI么????