jac*_*ate 16 delphi windows-7 notification-area
关于Microsoft的通知区域建议,我正在寻找想法或Delphi组件来实现Notification Area Flyouts.

第一个"自然"的想法是使用标准的Delphi表单,但我面临两个问题:
我会感谢任何线索或组件来实现它:)
最好的祝福.
jachguate.
PS.在Win7(Delphi)中将通知区域图标转换为程序图标时存在相关问题.
更新[0] 我还在寻找建议.@skamradt答案看起来非常好,但遗憾的是在实践中效果不佳.
更新[1] 最后,在调用SetForegroundWindog强制弹出"激活"后,自动关闭行为正在使用WM_ACTIVATE消息
begin
FlyoutForm.Show;
SetForegroundWindow(FlyoutForm.Handle);
end;
Run Code Online (Sandbox Code Playgroud)
现在,我正在寻找建议来达到边界行为和视觉风格,因为最接近的行为是使用样式实现的WS_POPUP或WS_DLGFRAME,而最接近的视觉目标是将WSFOPUP或WS_THICKFRAME设置为样式.
我相信你的后续内容如下:
TForm1 = class(TForm)
:
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure WMActivate(Var msg:tMessage); message WM_ACTIVATE;
end;
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.Style := WS_POPUP or WS_THICKFRAME;
end;
procedure TForm4.WMActivate(var msg: tMessage);
begin
if Msg.WParam = WA_INACTIVE then
Hide; // or close
end;
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个带有玻璃框架的相当大的弹出窗口.由于缺少标准的Windows标题,因此无法在不进行其他编程的情况下移动窗口.当另一个窗口获得焦点时,FormDeactivate事件将被触发...但仅当您切换到同一应用程序中的另一个窗体时.无论切换应用程序如何处理它,请使用消息捕获方法.
| 归档时间: |
|
| 查看次数: |
4490 次 |
| 最近记录: |