不隨主窗口一起最小化

 

重載Createparams,改變窗體風格爲<FONT color=#000000>WS_EX_APPWINDOW即可

 

Unit1.pas文件如下:

 

 

 

 

  1. unit Unit1;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.   TForm1 = class(TForm)
  8.     Button1: TButton;
  9.     procedure Button1Click(Sender: TObject);
  10.     procedure FormCreate(Sender: TObject);
  11.   private
  12.     {   Private   declarations   }
  13.     procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  14.   public
  15.     {   Public   declarations   }
  16.     procedure CreateParams(var Params: TCreateParams); override;
  17.   end;
  18. var
  19.   Form1: TForm1;
  20. implementation
  21. uses Unit2;
  22. {$R   *.dfm}
  23. procedure TForm1.Button1Click(Sender: TObject);
  24. begin
  25.   if not Assigned(Form2) then
  26.     Form2 := TForm2.Create(nil);
  27.   Form2.Show;
  28. end;
  29. procedure TForm1.CreateParams(var Params: TCreateParams);
  30. begin
  31.   inherited CreateParams(Params);
  32.   Params.ExStyle := WS_EX_APPWINDOW;
  33. end;
  34. procedure TForm1.FormCreate(Sender: TObject);
  35. begin
  36.   SetWindowLong(Application.Handle, GWL_EXSTYLE,
  37.     GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
  38. end;
  39. procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
  40. begin
  41.   if Msg.CmdType = SC_MINIMIZE then
  42.   begin
  43.     DefaultHandler(Msg);
  44.     WindowState := wsMinimized;
  45.   end
  46.   else
  47.     inherited;
  48. end;
  49. end.

Unit2.pas文件如下:

 

 

  1. unit Unit2;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, StdCtrls;
  6. type
  7.   TForm2 = class(TForm)
  8.     Button1: TButton;
  9.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  10.     procedure FormDestroy(Sender: TObject);
  11.   private
  12.     {   Private   declarations   }
  13.   public
  14.     {   Public   declarations   }
  15.     procedure CreateParams(var Params: TCreateParams); override;
  16.   end;
  17. var
  18.   Form2: TForm2;
  19. implementation
  20. {$R  *.dfm}
  21. procedure TForm2.CreateParams(var Params: TCreateParams);
  22. begin
  23.   inherited CreateParams(Params);
  24.   Params.ExStyle := WS_EX_APPWINDOW;
  25. end;
  26. procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
  27. begin
  28.   Action := caFree;
  29. end;
  30. procedure TForm2.FormDestroy(Sender: TObject);
  31. begin
  32.   Form2 := nil;
  33. end;
  34. end.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章