【问题标题】:Windows 7 taskbar thumbnails for one app (such as in IE8)一个应用程序的 Windows 7 任务栏缩略图(例如在 IE8 中)
【发布时间】:2009-08-21 04:20:40
【问题描述】:

在 Windows 7 下,IE 8 将每个打开的标签显示为任务栏缩略图。我怎样才能在我自己的应用程序中实现这一点?

MSN Messenger 表现出相同的行为。

【问题讨论】:

  • Aero Peek 是一个不同的功能。窥视功能与任务栏末尾的小块有关,可让您预览桌面和小工具。 IE8/Messenger 功能与实时窗口预览功能有关。
  • 您使用哪种语言? C++ 还是 C#?

标签: windows-7


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      这是我的best reference。请注意,我在这里假设本机代码,可以以相当直接的方式 p/invoke'd 一个 .NET 等效项。

      归结为以下几点:

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

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

      【讨论】:

        猜你喜欢
        • 2011-11-12
        • 2011-04-29
        • 2011-07-05
        • 2011-02-12
        • 1970-01-01
        • 2013-01-26
        • 2012-05-05
        • 2011-08-21
        • 2017-10-18
        相关资源
        最近更新 更多