2009-02-15 21 views
1

我真的很喜歡將鼠標懸停在任務欄上的Vista中的一個窗口上,它可以給你一個預覽。如果是視頻,它甚至可以在縮略圖中播放。DWM有多容易爲現有窗口創建'always on top'縮略圖

通常我真的希望我能'撕掉'這個小窗口,並將它作爲一個'總是在頂部'縮略圖在我的屏幕上。也許它是我正在觀看的一個進度條,也許它是一個我想要一個小預覽的視頻。

這不是DWM使編程變得容易的事情。這是一個簡單的努力,以編程好的託管C# - 或者我最終會陷入棘手的API的東西?

我對現有解決方案和指針如何代碼這樣的代碼感興趣。

回答

1

是的,你可以創建自己的任務欄般的縮略圖。儘管如此,你將不得不做很多的窗口句柄操作。它的工作原理基本上是你在你的表單中創建一個縮略圖的子窗口。你想要使用常用技巧的縮略圖的頂級窗口的窗口句柄。然後你調用一個DWM函數DWMRegisterThumbnail來關聯這兩者。您根本不參與繪製縮略圖的操作 - 一旦窗口關聯,DWM合成過程就會在窗體中繪製頂層窗口的縮略圖。

MSDN Documentation

3

對不起,自我宣傳在這裏。 :) 只要提到已經有一個應用程序,可以讓你克隆每個頂級窗口,並保持他們的預覽「總是在最前面」:OnTopReplica

該程序基於Windows Forms Aero庫,該庫是一個包含一些DWM包裝的.NET(c#)庫。不需要任何棘手的API(除此之外,API非常簡單)。

+0

非常酷謝謝 – 2009-08-12 19:31:35