关于 Microsoft 的 Notification Area 建议,我正在寻找想法或 Delphi 组件来实现Notification Area Flyouts。
第一个“自然”的想法是使用标准的 Delphi 形式,但我面临两个问题:
- 我无法使用标准的“BorderStyle”属性获得表单边框行为。尝试使用 GlassFrame 属性以及将 BorderStyle 设置为 bsNone 来“模仿”边框,但是当没有边框时(至少在 Delphi 2007 中)没有 GlassFrame。
- 当用户单击表单本身的任何位置时,我无法弄清楚如何关闭表单。昨天我尝试了不同的消息,但没有人按预期工作。
我会感谢任何线索或组件来实现它:)
此致。
贾奇盖特。
附言。在 Win7 (Delphi) 中将通知区域图标转换为程序图标有一个相关的问题。
更新[0] 我仍在寻求建议。@skamradt 的答案看起来非常好,但不幸的是在实践中效果不佳。
update[1] 最后,在调用 SetForegroundWindog 以强制弹出“激活”之后,自动关闭行为与 WM_ACTIVATE 消息一起使用
begin
FlyoutForm.Show;
SetForegroundWindow(FlyoutForm.Handle);
end;
现在,我正在寻找达到边框行为和视觉样式的建议,因为最接近的行为是通过样式为 WS_POPUP 或 WS_DLGFRAME 来实现的,而最接近的视觉目标是通过将样式设置为 WS_POPUP 或 WS_THICKFRAME 来实现的。