一个应用程序的Windows 7任务栏缩略图(例如在IE8中)

时间:2009-08-21 04:20:40

标签: windows-7

在Windows 7下,IE 8将每个打开的选项卡显示为任务栏缩略图。我如何在自己的应用程序中实现这一目标?

MSN Messenger表现出同样的行为。

3 个答案:

答案 0 :(得分:4)

我相信这是通过Windows API代码包完成的:http://code.msdn.microsoft.com/WindowsAPICodePack

这是一篇博客文章,解释了“自定义窗口预览如何用于在任务栏中显示子窗口列表(浏览器标签)作为缩略图和启用浏览的窗口。”听起来像你需要的:http://blogs.microsoft.co.il/blogs/sasha/archive/2009/02/12/windows-7-taskbar-apis.aspx

答案 1 :(得分:1)

以下文章应该有所帮助。 Windows 7中有几个新的任务栏功能,所有这些功能都在下面的链接中讨论。

http://msdn.microsoft.com/en-us/magazine/dd942846.aspx

请注意,Aero Peek功能与任务栏按钮无关,它只是让您使所有窗口完全透明,以预览桌面和小工具。您实际需要的是“Windows 7 Grouped Taskbar Thumbnails”,以防您需要进行其他搜索。

答案 2 :(得分:1)

这是我得到的best reference。请注意,我在这里假设本机代码,可以以相当直接的方式调用.NET等效。

归结为以下几点:

  • 对于每个标签,请创建代理窗口
    • 对于这些窗口,请致电DwmSetWindowAttribute以设置DWMWA_FORCE_ICONIC_REPRESENTATION& DWMWA_HAS_ICONIC_THUMBNAIL
  • 每当这些代理窗口收到WM_DWMSENDICONICLIVEPREVIEWBITMAP消息时,将相应的缩略图渲染到代理窗口中
    • 只要代理窗口收到WM_ACTIVATE,请切换到正确的标签
    • 您还需要处理WM_SYSCOMMAND
  • 抓住你的ITaskbarList4
    • 使用它将每个代理窗口注册为选项卡
    • 管理标签顺序以及不通过ITaskbarList4界面(包括激活标签)

似乎应该有更好的方法来做到这一点,但目前我所知道的只是。