2009-08-21 74 views
0

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

MSN Messenger显示相同的行为。

+0

Aero Peek是一个不同的功能。窥视功能与任务栏末尾的小结点有关,它允许您预览桌面和小工具。 IE8/Messenger功能与实时窗口预览功能有关。 – jrista 2009-08-21 04:25:39

+0

您正在使用哪种语言? C++还是C#? – Kredns 2009-08-21 04:56:14

回答

1

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

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

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

1

这是我得到的best reference。请注意,我在这里假设了本地代码,.NET等价物可以以相当简单的方式被p/invoke启用。

它归结为以下几点:

  • 对于每个选项卡,创建一个代理窗口
    • 对于这些窗口调用DwmSetWindowAttribute设置DWMWA_FORCE_ICONIC_REPRESENTATION & DWMWA_HAS_ICONIC_THUMBNAIL
  • 每当这些代理窗口收到WM_DWMSENDICONICLIVEPREVIEWBITMAP消息,使相应的缩略图到代理窗口
    • 每当代理窗口收到WM_ACTIVATE,切换到正确的标签
    • 您还需要处理WM_SYSCOMMAND
  • 抓住你ITaskbarList4
    • 使用它来注册您的每个代理窗口作为标签
    • 管理通过ITaskbarList4接口选项卡顺序并没有什么(这包括激活标签)

好像应该有更好的方式来做到这一点,但它的一切我所知道的,在此时此刻。

相关问题