不随主窗口一起最小化

 

重载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.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值