非主窗体最小化时,如何让其出现在任务栏,而不是屏幕的左下角?

解决方案 »

  1.   

    由于delphi创建的form都是以application创建的隐藏窗口为父窗口,所以不会在task bar显示出来。显示在任务栏的是,那个隐藏窗口的。
    除非这样做:interfacetype
      TChildForm = class(TForm)
      ...
      protected
        procedure CreateParams(var Params: TCreateParams) ; override;
      ...implementationprocedure TChildForm.CreateParams(var Params: TCreateParams) ;
    begin
      inherited;  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;  Params.WndParent := GetDesktopWindow;
    end;
      

  2.   

    经过试验,可以直接修改标志。你可以根据此法,在适当的时机to doprocedure TForm1.Button1Click(Sender: TObject);
    var
      mf : TForm2;
    begin
     mf := TForm2.Create(nil);
     SetWindowLong(mf.Handle,GWL_EXSTYLE,GetWindowLong(mf.Handle,GWL_EXSTYLE) or WS_EX_APPWINDOW);
     mf.Show;
    end;