【发布时间】:2011-01-07 11:32:39
【问题描述】:
关于 Microsoft 的通知区域建议,我正在寻找想法或 Delphi 组件来实现Notification Area Flyouts。
第一个“自然”的想法是使用标准的 Delphi 表单,但我面临两个问题:
- 我无法使用标准的“BorderStyle”属性获得表单边框行为。尝试使用 GlassFrame 属性以及将 BorderStyle 设置为 bsNone 来“模仿”边框,但是当没有边框时没有 GlassFrame(至少在 Delphi 2007 中)。
- 当用户单击表单本身的任何位置时,我无法弄清楚如何关闭表单。昨天我尝试了不同的消息,但没有一个按预期工作。
我会感谢任何线索或组件来实现它:)
最好的问候。
jachguate。
ps。 converting notification area icon to Program icon in Win7 (Delphi)有一个相关的问题。
更新[0] 我还在寻求建议。 @skamradt 的答案看起来非常好,但不幸的是在实践中效果不佳。
更新[1] 最后,自动关闭行为是在调用 SetForegroundWindog 后使用 WM_ACTIVATE 消息强制弹出“激活”
begin
FlyoutForm.Show;
SetForegroundWindow(FlyoutForm.Handle);
end;
现在,我正在寻找达到边框行为和视觉样式的建议,因为最接近的行为是通过样式为 WS_POPUP 或 WS_DLGFRAME 来实现的,而最接近的视觉目标是通过将样式设置为 WS_POPUP 或 WS_THICKFRAME 来实现的。
【问题讨论】:
-
感谢RRUZ的链接转换:)
标签: delphi windows-7 notification-area