使用 ShowBalloonHint 时,如何避免在设置为自动隐藏时弹出任务栏?
问问题
1966 次
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 回答