在DWM中为现有窗口制作“始终在线”缩略图是多么容易

时间:2009-02-15 02:28:28

标签: windows-vista dwm

我真的很喜欢当你将鼠标悬停在任务栏上的Vista窗口时,它会给你一些预览。如果是视频,它甚至可以在缩略图中播放。

我经常希望能够“撕下”这个小窗口并将其保留为屏幕上的“永远在线”缩略图。也许它是我正在观看的进度条,也许它是一个视频,我想要一个小小的预览。

这不是DWM使编程变得容易的事情。这是一个简单的尝试编程好的托管C# - 或者我最终会陷入棘手的API东西?

我对现有的解决方案以及如何编写类似代码的指针感兴趣。

3 个答案:

答案 0 :(得分:3)

很抱歉在这里进行自我推销。 :) 只是提到已经有一个应用程序允许您克隆每个顶级窗口并保持他们的预览“始终在顶部”:OnTopReplica

该程序基于Windows Forms Aero库,一个包含一些DWM包装器的.NET(c#)库。不需要棘手的API东西(此外,API也很简单)。

答案 1 :(得分:1)

是的,您可以创建自己的任务栏式缩略图。你将不得不做一些窗口句柄操作。它是如何工作的基本上是你在表单中创建一个将成为缩略图的子窗口。你想要使用常用技巧的缩略图的顶级窗口的窗口句柄。然后调用DWM函数DWMRegisterThumbnail来关联这两个函数。您根本没有参与绘制缩略图 - 一旦窗口关联,DWM合成过程将负责绘制表单中顶级窗口的缩略图。

MSDN Documentation

答案 2 :(得分:1)

非常好的预览如何在C#中使用它:

http://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx