1

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

通常我真的希望我能“撕掉”这个小窗口,并将其作为“始终在顶部”的缩略图保留在我的屏幕上。也许它是我正在观看的进度条,也许它是我想要一个小小的预览的视频。

这不是 DWM 使编程变得容易的那种东西吗?这会是在良好的托管 C# 中进行编程的简单尝试 - 还是我最终会陷入棘手的 API 问题?

我对现有的解决方案和关于如何编写这样的代码的指针都感兴趣。

4

3 回答 3

3

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

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

于 2009-08-12T17:13:00.777 回答
2

如何在 C# 中使用它的一个很好的预览:

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

于 2009-05-12T08:38:58.810 回答
1

是的,您可以创建自己的类似任务栏的缩略图。不过,您将不得不进行大量的窗口句柄操作。它的工作原理基本上是您在表单中创建一个将作为缩略图的子窗口。您可以使用常用技巧获取想要缩略图的顶级窗口的窗口句柄。然后调用 DWM 函数 DWMRegisterThumbnail 将两者关联起来。您实际上根本不参与绘制缩略图 - 一旦关联了窗口,DWM 合成过程就会负责在您的表单中绘制顶级窗口的缩略图。

MSDN 文档

于 2009-02-15T11:30:24.867 回答