【问题标题】:Adding functionality to popup taskbar window向弹出任务栏窗口添加功能
【发布时间】:2014-04-16 23:45:59
【问题描述】:

不确定如何表达,但 win7/win8 允许固定到任务栏。当应用程序正在运行并且您将鼠标悬停时,会弹出一个窗口,显示一个微型应用程序屏幕。

使用 winamp 和 MP3 文件播放,而不是显示应用程序表单,它会弹出带有小导航栏的窗口,以允许暂停、快进等播放。

我想对我的应用程序做类似的事情,而不是暂停任何东西,但我想通过几个按钮向弹出窗口添加一些工作功能。

我该怎么做?

【问题讨论】:

标签: delphi taskbar delphi-5


【解决方案1】:

您描述的大部分内容(包括预览窗口上的按钮)都是使用 Windows 7 及更高版本中的ITaskbarList3 COM 接口完成的。

有一个关于showing a progress bar in the taskbar 的问题;这两个答案目前有一些相关链接,包括一些示例和开源 Delphi 组件。请注意,使用这样的旧版本的 Delphi 实现这对您来说可能要困难得多;更新的版本在 RTL 中已经为您提供了定义和类型,大大简化了 COM 的使用。

正如 Remy 在 cmets 中指出的那样,XE6 包含一个新的 VCL 组件,TTaskbar(见注释),这使得添加这些按钮变得非常简单。您只需在表单上放置一个组件,使用 TTaskbar.TaskbarButtons 属性编辑器添加按钮,为每个按钮分配一个 TAction 和图标,就完成了。

注意:TTaskbar 文档链接此时没有有意义的内容,因为该组件位于新发布的 XE6(本周发布)中。我将其添加为未来读者的参考点;希望当他们看到它时,该链接将包含一些有用的详细信息。

【讨论】:

  • 新发布的 XE6 甚至为 Win7+ 任务栏功能提供了新的包装组件。不过,在旧的 Delphi 版本中实现确实并不难(我曾经在 C++Builder 6 项目中必须这样做)。
  • @Remy:感谢您的编辑。我看到它包含在 XE6 中,但还没有机会调查。我自己在 D2007 中完成了它,并且包括在 XP(当然在 EOL 之前)和 Win7 中使用相同应用程序的能力,如果它们存在的话,使用 ITaskbarList3 接口。还不错,但 D5 已经过时了。
猜你喜欢
  • 2016-08-12
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-07
相关资源
最近更新 更多