C# 如何实现任务栏高亮(闪烁两次就停止并一直处于高亮状态。)

xiaokang201111 2012-04-18 11:41:14
C# 如何实现任务栏常亮:即任务栏一闪一闪,最后为高亮橘黄色。可以参考QQ发消息时,打开会话窗体后,有新消息的时候任务栏的闪动。求大侠们帮忙;
...全文
718 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmhh3000 2014-10-15
  • 打赏
  • 举报
回复
public struct FLASHWINFO { public UInt32 cbSize; public IntPtr hwnd; public UInt32 dwFlags; public UInt32 uCount; public UInt32 dwTimeout; }
Panda_Ling 2014-10-13
  • 打赏
  • 举报
回复
引用 6 楼 mmhh3000 的回复:
闪动并停留需要使用这个函数: public static extern bool FlashWindowEx(ref FLASHWINFO pwfi); 代码如下: [DllImport("user32.dll")] public static extern bool FlashWindowEx(ref FLASHWINFO pwfi); public enum falshType:uint { FLASHW_STOP = 0, //停止闪烁 FALSHW_CAPTION = 1, //只闪烁标题 FLASHW_TRAY = 2, //只闪烁任务栏 FLASHW_ALL = 3, //标题和任务栏同时闪烁 FLASHW_PARAM1 = 4, FLASHW_PARAM2 = 12, FLASHW_TIMER = FLASHW_TRAY | FLASHW_PARAM1, //无条件闪烁任务栏直到发送停止标志,停止后高亮 FLASHW_TIMERNOFG = FLASHW_TRAY | FLASHW_PARAM2 //未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮 } public static bool flashTaskBar(IntPtr hWnd, falshType type) { FLASHWINFO fInfo = new FLASHWINFO(); fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo)); fInfo.hwnd = hWnd;//要闪烁的窗口的句柄,该窗口可以是打开的或最小化的 fInfo.dwFlags = (uint)type;//闪烁的类型 fInfo.uCount = UInt32.MaxValue;//闪烁窗口的次数 fInfo.dwTimeout = 0; //窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度 return FlashWindowEx(ref fInfo); } 下面的调用:未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮 flashTaskBar(this.Handle, falshType.FLASHW_TIMERNOFG); 下面的调用:停止闪烁,停止后如果未激活窗口,窗口高亮 flashTaskBar(this.Handle, falshType.FLASHW_STOP);
FLASHWINFO是什么?
mmhh3000 2014-09-13
  • 打赏
  • 举报
回复
闪动并停留需要使用这个函数: public static extern bool FlashWindowEx(ref FLASHWINFO pwfi); 代码如下: [DllImport("user32.dll")] public static extern bool FlashWindowEx(ref FLASHWINFO pwfi); public enum falshType:uint { FLASHW_STOP = 0, //停止闪烁 FALSHW_CAPTION = 1, //只闪烁标题 FLASHW_TRAY = 2, //只闪烁任务栏 FLASHW_ALL = 3, //标题和任务栏同时闪烁 FLASHW_PARAM1 = 4, FLASHW_PARAM2 = 12, FLASHW_TIMER = FLASHW_TRAY | FLASHW_PARAM1, //无条件闪烁任务栏直到发送停止标志,停止后高亮 FLASHW_TIMERNOFG = FLASHW_TRAY | FLASHW_PARAM2 //未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮 } public static bool flashTaskBar(IntPtr hWnd, falshType type) { FLASHWINFO fInfo = new FLASHWINFO(); fInfo.cbSize = Convert.ToUInt32(Marshal.SizeOf(fInfo)); fInfo.hwnd = hWnd;//要闪烁的窗口的句柄,该窗口可以是打开的或最小化的 fInfo.dwFlags = (uint)type;//闪烁的类型 fInfo.uCount = UInt32.MaxValue;//闪烁窗口的次数 fInfo.dwTimeout = 0; //窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度 return FlashWindowEx(ref fInfo); } 下面的调用:未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮 flashTaskBar(this.Handle, falshType.FLASHW_TIMERNOFG); 下面的调用:停止闪烁,停止后如果未激活窗口,窗口高亮 flashTaskBar(this.Handle, falshType.FLASHW_STOP);
__天涯寻梦 2012-06-13
  • 打赏
  • 举报
回复
如果窗体最小化着
FlashWindow(this.Handle, false);
这样就常亮了
wy811007 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

用timer控件,先设置
[System.Runtime.InteropServices.DllImport("user32")]
public static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
FlashWindow(this.Handle, true); //一闪闪
FlashWindow(this.Handle, false); //保持高亮橘黄色
[/Quote]
一闪 可以 但常亮 不行捏
xiaokang201111 2012-06-13
  • 打赏
  • 举报
回复
不行的,楼上的,要不你给试试,谢谢
lcy2012123456 2012-04-29
  • 打赏
  • 举报
回复
用timer控件,先设置 [System.Runtime.InteropServices.DllImport("user32")]
public static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
FlashWindow(this.Handle, true); //一闪闪
FlashWindow(this.Handle, false); //保持高亮橘黄色
lcy2012123456 2012-04-29
  • 打赏
  • 举报
回复
一闪一闪能做到,

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧