2015-05-22 36 views
3

對於我的應用程序,我使用FlashWindowEx(ref FLASHWINFO pwfi)形式的user32.dll來刷新任務欄和我的窗口以引起注意。閃爍窗口不起作用TabbedThumbnail(自定義任務欄預覽)

在這一刻我試圖添加一個自定義圖像的任務欄窗口的預覽,我發現最好的方式是通過使用WindowsAPICodePack中的TaskbarManager。

這可以正常工作,但是當我調用方法來刷新窗口時,任務欄會閃爍,但是由TabbedThumbnail代表的窗口不是。

正在使用此程序的示例是Skype for Business(以前的Lync)。爲了更清楚地瞭解正在發生的事情和我想要的,我添加了一個圖像和一個演示項目。

形象問題:

image problem

有沒有辦法讓這兩個功能在一起,就像Skype的業務是幹什麼的?

圖像S4B:

image s4b

來源爲演示項目: http://project14.net/Dev/csharp/FlashingCustomTaskbarItem.zip

感謝您的時間!

回答

2

我自己找到了答案。我下載了WindowsAPICodePack並擴展了GlassWindow。花了一段時間才把WPF中的所有東西都弄對了。

下面是一個的Winforms樣品:http://www.codeproject.com/Articles/45567/Creating-a-Timer-Using-the-Amazing-New-Windows-F

Interceptiinbg的窗口消息可以通過添加一個鉤到HwndSource來完成。

protected override void OnSourceInitialized(EventArgs e) 
{ 
    base.OnSourceInitialized(e); 
    HwndSource source = PresentationSource.FromVisual(this) as HwndSource; 
    source.AddHook(WndProc); 
} 

private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, 

ref bool handled) 
{ 
    if(msg == (int)TaskbarNativeMethods.WM_DWMSENDICONICLIVEPREVIEWBITMAP) 
    { 
     // get your bitmap an SetIconicThumbnail... 
    } 
} 

仍在試圖現在提高我的一些更好的功能代碼。