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

时间:2012-04-21 08:15:09

标签: delphi taskbar trayicon

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

1 个答案:

答案 0 :(得分:3)

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

很抱歉给您带来不便。


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

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

这将涉及使用

  • GetSystemMetrics(SM_CXFULLSCREEN)
  • GetSystemMetrics(SM_CYFULLSCREEN)
  • SystemParametersInfo(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,也可以自己动手。