windows - 如何获得不是主窗体的窗体的任务栏按钮?

标签 windows delphi forms

在Delphi中如何让一个窗体出现在任务栏上?例如,在 Firefox 中,当您在新窗口中打开页面时,它会在任务栏上创建另一个窗口,而无需创建新进程。目前我的 Delphi 应用程序在单击按钮时会打开一个新窗体,但任务栏上仍然只有一件事,因此您不能在主窗体和单击按钮时创建的窗体之间使用 alt-tab点击。我如何更改它以便新窗体出现时带有新的任务栏按钮?我当前的代码如下所示:

procedure Form1ButtonClick(Sender: TObject);
begin
    Form2.Show;
end;

我一直在摆弄 CreateWindowEx,但理想情况下我想找到一个比直接使用 Windows API 更简单的解决方案。

最佳答案

如果我正确理解您的需求,您可以通过覆盖它的 CreateParams 过程在任务栏上显示您的辅助表单,如 Minimize child forms independent of the main form 中所述。 delphi.about.com 文章,像这样:

interface

type
  TMyForm = class(TForm)
  ...
  protected
    procedure CreateParams(var Params: TCreateParams) ; override;
  ...

implementation

procedure TMyForm.CreateParams(var Params: TCreateParams) ;
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := 0;
end;

关于windows - 如何获得不是主窗体的窗体的任务栏按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493591/

相关文章:

windows - 未找到 Qt 创建者 : This application has failed to start because MSVCP110. dll

c++ - 在 Windows 7 上开始使用 OpenCV 2.4 和 MinGW

delphi - 使用 Tcollection 在 delhi 中保存 vcl 对象引用

delphi - 检测 IE 代理设置并与 TIdHTTP 一起使用

javascript - 防止基于选择框选择的单选按钮发生更改

javascript - 将字符串转换为有效的 json 对象

windows - 查看第 3 方 DLL 中的可用消息字符串(来自 mc.exe)

java - 是否可以添加类似 shebang 的东西来使 jar 文件在 Windows 上可执行?

delphi - EIdOSSLUnderlyingCryptoError 异常

javascript - 我想通过使用多个显示和隐藏它们的 div 来制作一个多部分表单