Delphi:设置为自动隐藏时如何显示托盘图标气球而不显示任务栏

标签 delphi taskbar trayicon

使用 ShowBalloonHint 时,如何避免设置为自动隐藏时弹出任务栏?

最佳答案

Windows 中的通知区域具有已定义的行为。您可以希望它的行为有所不同,但这并不能改变您想做的事情无法完成的事实。

抱歉给您带来不便。


一个接近的解决方法是自己创建一个 TOOLTIP 窗口,并将其放置在屏幕上您认为用户通知区域可能所在的位置附近:

  • 右下
  • 右上角
  • 左下角
  • 主要显示器
  • 辅助监视器

这将涉及使用

  • GetSystemMetrics(SM_CXFULLSCREEN)
  • GetSystemMetrics(SM_CYFULLSCREEN)
  • 系统参数信息(SPI_GETWORKAREA)

然后创建一个TOOLTIPS_CLASS窗口:

    FHandle := CreateWindow(TOOLTIPS_CLASS, PChar(''),
            WS_POPUP or TTS_BALLOON,
            Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
            Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
            0, 0, HInstance,
            nil);

然后您将向其发送 TTM_SETTITLETTM_UPDATETIPTEXTTTM_TRACKPOSITION 消息,最后是重要时刻:TTM_TRACKACTIVATE >:

enter image description here

稍后,您通过再次调用 TTM_TRACKACTIVATE 来隐藏工具提示。


您可以随意follow Windows user experience guidelines ,或者您也可以自己推出。

关于Delphi:设置为自动隐藏时如何显示托盘图标气球而不显示任务栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10257377/

相关文章:

Delphi Firemonkey 2 .color 属性

xml - 如何使用 TXMLDocument 手动构造 Soap Envelope (Delphi 2006)

vb.net - 隐藏表单的任务栏按钮而不使用 WS_EX_TOOLWIN

windows - 如何在 Windows 7 Aero 任务预览中创建自己的控件?

winforms - 如何禁用桌面和/或任务栏

Java TrayIcon.displayMessage() 和换行符

delphi - TStringList 拆分错误

Delphi TGridPanel - 动态隐藏一些行

c# - 托盘中更好的通知

Java Swing TrayIcon 气球消息 - 实现与主图标不同的 Action 监听器?