使用ShowBalloonHint时,如何在设置为自动隐藏时避免弹出任务栏?
答案 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_SETTITLE
,TTM_UPDATETIPTEXT
,TTM_TRACKPOSITION
消息,最后是重要时刻:TTM_TRACKACTIVATE
:
然后有一段时间你会再次调用TTM_TRACKACTIVATE
来隐藏工具提示。
您可以自由follow Windows user experience guidelines,也可以自己动手。