8

以下代码在 Delphi 7 中运行良好。然而,在 Delphi 2009 中,表单确实保持隐藏状态,但任务栏上的按钮现在出现了。

ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);

上面的代码是在 FormCreate 方法中调用的。

4

2 回答 2

10

原来我们在任务栏上看到“应用程序”窗口的原因是一个简单的设置,类似于 stukelly 的答案,但不完全是。

要使主窗体出现在任务栏上并隐藏您应用的应用程序菜单:

Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;

表单创建后没有代码或任何需要的代码。

于 2009-04-28T08:10:46.010 回答
5

在创建表单之前,您需要将ShowMainFormMainFormOnTaskBar属性设置为 False。

在创建表单之前,打开您的项目源并将MainFormOnTaskBarShowMainForm设置为 False。

Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);

然后在您的主窗体上将以下代码添加到FormActivateFormShow事件中。

procedure TForm1.FormActivate(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;

我已经使用 Dephi 2007 和 2009 进行了测试。更多信息可在此处获得。

于 2009-03-26T01:26:53.120 回答