【发布时间】:2013-05-27 08:17:25
【问题描述】:
根据question,可以通过将窗口样式更改为 WS_EX_TOOLWINDOW 来隐藏 fmx 任务栏图标。 在 XE2 和 XE3 中,此代码有效:
uses FMX.Platform.Win, Winapi.Windows;
procedure TForm1.Button1Click(Sender: TObject);
var h:THandle;
begin
h := FmxHandleToHWND(Handle);
ShowWindow(h, SW_HIDE);
SetWindowLong(h, GWL_EXSTYLE, GetWindowLong(h, GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
ShowWindow(h, SW_SHOW);
end;
在 XE4 中,此解决方案不起作用(应用程序按钮应该被隐藏但没有任何反应)。有人知道吗?
谢谢。
【问题讨论】:
-
这对我来说在 XE3 上工作正常(没有 MainformOnTaskbar):使用 FMX.Platform.Win ;过程 TForm2.Button1Click(Sender: TObject); var h:THandle;开始 h := FmxHandleToHWND(Handle); ShowWindow(h, SW_HIDE); SetWindowLong(h, GWL_EXSTYLE, GetWindowLong(h, GWL_EXSTYLE) 或 WS_EX_TOOLWINDOW);显示窗口(h,SW_SHOW);结束;
-
MainformOnTaskbar 确定主窗体是否为无主窗体。在 FMX 中可能没有任何意义,因为主窗体可能总是无主的。所以使用工具窗口样式就足够了。
-
建议的代码不适用于 XE4。
-
您的目标是防止您的应用一起出现在任务栏上(图标 + 标题)还是只是删除图标(标题可见)?
-
我的目标只是图标,标题不重要。
标签: windows delphi delphi-xe3 firemonkey-fm2 delphi-xe4