不随主窗口一起最小化

 

重载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
    评论
### 回答1: 要在 Tkinter 窗口中实现最小化功能,可以使用窗口管理器的 `iconify()` 方法。这个方法会将窗口最小化到任务栏或 Dock 中,具体表现取决于操作系统。 以下是一个简单的示例代码: ```python import tkinter as tk root = tk.Tk() def minimize(): root.iconify() minimize_button = tk.Button(root, text="最小化", command=minimize) minimize_button.pack() root.mainloop() ``` 这个示例创建了一个按钮,点击它会调用 `minimize()` 函数,将窗口最小化。注意,`iconify()` 方法只对主 Tkinter 窗口有效,对 Toplevel 窗口无效。如果需要最小化 Toplevel 窗口,可以使用 `withdraw()` 方法将其隐藏。 ### 回答2: 在使用tkinter创建窗口时,可以通过调用窗口对象的`iconify()`方法来最小化窗口。`iconify()`方法将窗口从屏幕上移除,但仍然可以通过任务栏或窗口管理器对其进行操作。 以下是一个示例代码,用于创建一个最小化窗口的按钮,并点击按钮后将窗口最小化: ```python import tkinter as tk def minimize_window(): root.iconify() root = tk.Tk() root.title("最小化窗口示例") button = tk.Button(root, text="最小化窗口", command=minimize_window) button.pack() root.mainloop() ``` 在上述代码中,首先导入了tkinter模块,并创建了一个Tk对象,表示窗口。然后定义了一个名为`minimize_window()`的函数,用于将窗口最小化,其中调用了`iconify()`方法。接着创建了一个按钮,当按钮被点击时会调用`minimize_window()`函数。最后通过调用`mainloop()`方法来启动窗口的事件循环。 当点击按钮时,窗口将会被最小化,直到再次从任务栏或窗口管理器中将其恢复。 ### 回答3: 使用tkinter创建窗口后,可以通过调用窗口对象的`iconify()`方法将窗口最小化。 以下是一个简单的示例代码: ```python import tkinter as tk # 创建窗口 window = tk.Tk() # 设置窗口标题 window.title("最小化窗口示例") # 设置窗口大小 window.geometry("300x200") # 创建“最小化”按钮点击事件处理函数 def minimize_window(): window.iconify() # 最小化窗口 # 创建“最小化”按钮 minimize_button = tk.Button(window, text="最小化", command=minimize_window) minimize_button.pack() # 运行窗口循环 window.mainloop() ``` 在上述示例中,通过调用`window.iconify()`方法,在点击按钮时可以将窗口最小化。当然,也可以通过其他方式,如使用快捷键,来调用`window.iconify()`方法实现窗口最小化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值