【问题标题】:How to prevent Taskbar button disappearing when form is hidden隐藏表单时如何防止任务栏按钮消失
【发布时间】:2014-09-04 08:13:34
【问题描述】:

隐藏唯一形式的应用程序时如何防止任务栏按钮消失?

我的应用程序总是有一个在顶部窗体,但有时我需要隐藏它,但仍保持任务栏按钮可见。任务栏按钮用于控制产品。

【问题讨论】:

  • ShowWindow(Handle, SW_HIDE) 使任务栏按钮可见。至少在 XP 中。但是“任务栏按钮用于控制产品”:当用户单击任务栏按钮时,您期望发生什么?
  • @kobik - 这可能取决于 MainFormOnTaskBar。

标签: delphi


【解决方案1】:

隐藏窗口不显示任务栏按钮。因此,如果任务栏按钮与主窗体的窗口相关联,并且您隐藏了该窗体,那么任务栏按钮将被隐藏。

所以,我想最简单的方法就是停止隐藏主窗体。请改用Application.MinimizeWindowState := wsMinimized

【讨论】:

    【解决方案2】:

    或者,如果您想通过最小化/最大化表单来避免最小化/最大化效果,请使用 Alpha 透明度并将其设置为 0(完全透明)。
    这样,您可以隐藏用户视线的窗口,但在操作系统方面,窗口仍然可见,因此它将保持其任务栏按钮。

    【讨论】:

    • 当你点击那个完全透明的窗口会发生什么?
    • 据我所知,alpha 透明度设置为 0 的表单不会记录点击次数,但我不确定。由于我无法访问我的开发机器,我现在无法测试它。
    • 我现在也在 Delphi 7 和 Delphi XE3 中检查了这一点,它在这两个版本中都有效。但是现在当我更多地想到这一点时,我确实记得即使 Alpha Transparency 设置为 0,旧版本的 Delphi 之一仍然可以检测到 moose cicks。
    • 这听起来不错,我们已经经常使用透明度。但是 DISPLAY DRIVER/ADAPTER 的限制是什么?有没有可能,例如在旧的 XP 机器上它不工作
    • @Tom - 分层窗口是available since W2K。当然,我不能评论特定盒子上的特定显示问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多