gpt4 book ai didi

c# - 闪烁的窗口不适用于 TabbedThumbnail(自定义任务栏预览)

转载 作者:行者123 更新时间:2023-11-30 16:54:32 30 4
gpt4 key购买 nike

对于我的应用程序,我使用 user32.dll 中的 FlashWindowEx(ref FLASHWINFO pwfi) 来刷新任务栏和我的窗口以引起注意。

此时我正在尝试为任务栏中的窗口预览添加自定义图像,我发现最好的方法是使用 WindowsAPICodePack 中的 TaskbarManager。

这工作正常,但是当我调用该方法使窗口闪烁时,任务栏正在闪烁,但由 TabbedThumbnail 表示的窗口却没有闪烁。

使用它的程序示例是 Skype for Business(以前的 Lync)。为了更清楚地说明发生了什么以及我想要什么,我添加了一张图片和一个演示项目。

图片问题:

image problem

有没有办法将这两个功能结合在一起,就像 Skype for Business 所做的那样?

图片 s4b:

image s4b

演示项目的来源: http://project14.net/Dev/csharp/FlashingCustomTaskbarItem.zip

谢谢你的时间!

最佳答案

我自己找到了答案。我下载了 WindowsAPICodePack 并扩展了 GlassWindow。在 WPF 中把一切都弄好花了一些时间。

这是 winForms 的示例:http://www.codeproject.com/Articles/45567/Creating-a-Timer-Using-the-Amazing-New-Windows-F

可以通过向 HwndSource 添加一个钩子(Hook)来拦截 Windows 消息。

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...
}
}

现在仍在尝试使用一些更好的功能来改进我的代码。

关于c# - 闪烁的窗口不适用于 TabbedThumbnail(自定义任务栏预览),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30399420/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com