procedure TForm2.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.WndParent := GetDesktopWindow;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  //在这儿要返回给主窗口处理;
end;

解决方案 »

  1.   

    你最后一名是返回window,应该返回给form1
      

  2.   

    怎样返回给window呢?我不是很明白,能不能进一步?
      

  3.   

    WS_EX_AppWindow 使用 Application 处理,故而关闭程序。
      

  4.   

    看一下是这样理解吗:
    procedure TForm2.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.WndParent := GetDesktopWindow;
      Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
    end;因为CreateParams是用来初始来当一个已经创建后窗口参数记录信息,所以
    当你用重载 CreateParams过程中又调用inherited CreateParams(Params);
    就会创建两个窗口。而当你在Form1调用以下命令:
      AForm: TForm2;
    begin
      AForm := TForm2.Create(Self);//就会自动调用重载 CreateParams过程
      AForm.Show;
    end;