使用C++builder的TTrayIcon制作系统托盘动态图标和气泡提示

TTrayIcon 的主要属性:
一.TTrayIcon->Icon
指定托盘图标, 有几种用法:
1、设计时选择;
2、把一个 TIcon 对象给它;
3、使用当前程序图标: TrayIcon1->Icon = Application->Icon;
TrayIcon1->SetDefaultIcon();

二.TrayIcon->Icons 与 TrayIcon1->IconIndex
TrayIcon->Icons 对应一个 TImageList,
用 TrayIcon->IconIndex 来指定使用 TImageList 中的第一个图标.

三.TrayIcon->PopupMenu
TrayIcon->PopupMenu 对应一个 TPopupMenu,
托盘图标一般少不了右键菜单.

四.TrayIcon->Visible
隐藏或显示系统托盘的图标; 虽简单、但关键, 因默认是 False.

五.TrayIcon->Hint
随鼠标指针的提示文本, 这是老式的, 下面有新型的.
TrayIcon->BalloonHint、BalloonTitle、BalloonFlags、BalloonTimeout
这都是新型的 Hint 相关的.
TrayIcon->BalloonHint: 文本
TrayIcon->BalloonTitle: 标题
TrayIcon->BalloonFlags: 图标样式
TrayIcon->BalloonTimeout: 停留时间
需要用 TrayIcon 的 ShowBalloonHint 方法启动显示

六.TrayIcon.Animate 与 TrayIcon1.AnimateInterval
TrayIcon 的新 Hint(BalloonHint)可设定动画.
TrayIcon->Animate: 这决定是否启用动画
TrayIcon1->AnimateInterval: 动画间隔时间

TTrayIcon 的主要事件:
OnAnimate: 写动画代码的事件
OnBalloonClick: 点击 BalloonHint 时…
OnClick: 单击图标时…
OnDblClick
OnMouseDown
OnMouseMove
OnMouseUp

TTrayIcon 还有两个方法, 前面都已提到了:
TTrayIcon->SetDefaultIcon;
TTrayIcon->ShowBalloonHint;

下面是两个实例:

一.“气泡提示”的制作
第一步:在窗体中放置 TrayIcon 控件( Additional 面板中可以找到)。
第二步:设置 TrayIcon 的 Icon 图标,载入一个 ICO 文件。
第三步:设置 TrayIcon 的 BalloonHint 为“ C++builder2010 高级控件应用”,设置 BalloonTitle 为“程序员2017合订本”。设置 Visible 为 True 。
第四步:双击窗体,在 OnCreate 事件中写入下面代码: TrayIcon1->ShowBalloonHint;
好了, F9 运行程序,一个“气泡提示”就会出现在图标上。属性中的 BalloonTimeout 是设置“气泡提示”多少秒后消失,默认是 3 秒。

二.动态图标
我们大家都知道,当有 QQ 消息时,托盘中会有一个闪烁图标,使用 TrayIcon 控件可以非常容易地实现这个功能。
使图标动起来,其实就是使用多个图标进行切换。
QQ 的闪烁图标,其实就是使用的两个图标来进行切换的,一个是头像图标,一个是空的图标。
下面我们就来模拟 QQ 头像闪烁功能:
第一步:在窗体上放置 ImageList 控件(在 Win32 面板中可以找到)。
第二步:设置 ImageList 控件的 Width 和 Height 属性为 32 ,然后双击 ImageList ,点击“ Add ”按钮添加图标文件。第一个添加的是要显示的图标,第二个添加一个空的图标(可以使用 Image Editor 新建一个 ICO 文件,然后直接保存即可得到一个空的图标。)。
第三步:设置 TrayIcon 的 Icons 属性为 ImageList1 (可以直接在列表中选择)。
第四步:在 Form1 的 OnFormShow 事件中加入下面的代码:
TrayIcon1->Animate = True;
TrayIcon1->AnimateInterval = 450;
当 Animate 为 True 时,将自动按 ImageList 控件中图标的顺序进行依次显示,形成动态效果。 AnimateInterval 为每隔多少时间显示下一个图标。如果要停止闪烁,将 Animate 设置为 False 即可。

需要提到的是:
在Samples组件页中有一个TCTrayIcon组件,它封装编写所需的Window API函数,他有几个属性是这个TrayIcon所没有的。

  1. Hide设为true时,最小化时隐藏在任务栏上的标题栏;
  2. PopupMenuOn设置触发弹出菜单的鼠标操作
    说明:imClick鼠标单击
    imDoubleClick鼠标双击
    imLeftClickUp单击鼠标左键,放开
    imLeftDoubleClick双击鼠标左键
    imMouseDown按下鼠标键
    imMouseUp按下鼠标键,放开
    imNone不设置鼠标操作
    imRightClickUp单击鼠标右键,放开
    imRightDoubleClick双击鼠标右键
  3. RestoreOn设置恢复最小化到正常状态
  4. 最小化和隐窗体应该用: TrayIconMe->Minimize()来实现
    还原窗体用:TrayIconMe->Restore()。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值