2015-05-22 1 views
3

Для моего приложения я использую FlashWindowEx (ref FLASHWINFO pwfi) из файла user32.dll, чтобы запустить панель задач и мое окно для внимания.Мигающее окно не работает для TabbedThumbnail (предварительный просмотр панели задач)

В настоящий момент я пытаюсь добавить пользовательское изображение для предварительного просмотра окна на панели задач, наилучшим образом я нашел это с помощью TaskbarManager в WindowsAPICodePack.

Это работает хорошо, но когда я вызываю метод для вспышки окна, панель задач мигает, но Окно, которое представлено TabbedThumbnail, не является.

Образец программы, использующей это Skype для бизнеса (бывшая Lync). Чтобы более четко понять, что происходит и что я хотел бы иметь, я добавил изображение и демонстрационный проект.

проблема изображения:

image problem

Есть ли способ, чтобы получить обе эти функции вместе, как скайп для бизнеса делает?

изображение 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... 
    } 
} 

По-прежнему пытается улучшить мой код с некоторыми улучшенными функциями.