2

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

4

1 回答 1

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_SETTITLE, TTM_UPDATETIPTEXT,TTM_TRACKPOSITION消息,最后是重要时刻: TTM_TRACKACTIVATE:

在此处输入图像描述

然后某个时候,您通过另一个调用来隐藏工具提示TTM_TRACKACTIVATE


您可以自由地遵循 Windows 用户体验指南,也可以自己动手。

于 2012-05-08T22:04:46.290 回答