问题描述
C#如何实现任务栏常亮:即任务栏一闪一闪,最后为高亮橘黄色。可以参考QQ发消息时,打开会话窗体后,有新消息的时候任务栏的闪动。求大侠们帮忙;
解决方案
解决方案二:
一闪一闪能做到,
解决方案三:
用timer控件,先设置[System.Runtime.InteropServices.DllImport("user32")]publicstaticexternboolFlashWindow(IntPtrhWnd,boolbInvert);FlashWindow(this.Handle,true);//一闪闪FlashWindow(this.Handle,false);//保持高亮橘黄色
解决方案四:
不行的,楼上的,要不你给试试,谢谢
解决方案五:
引用2楼的回复:
用timer控件,先设置[System.Runtime.InteropServices.DllImport("user32")]publicstaticexternboolFlashWindow(IntPtrhWnd,boolbInvert);FlashWindow(this.Handle,true);//一闪闪FlashWindow(this.Handle,false);//保持高亮橘黄色
一闪可以但常亮不行捏
解决方案六:
如果窗体最小化着FlashWindow(this.Handle,false);这样就常亮了
解决方案七:
闪动并停留需要使用这个函数:publicstaticexternboolFlashWindowEx(refFLASHWINFOpwfi);代码如下:[DllImport("user32.dll")]publicstaticexternboolFlashWindowEx(refFLASHWINFOpwfi);publicenumfalshType: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//未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮}publicstaticboolflashTaskBar(IntPtrhWnd,falshTypetype){FLASHWINFOfInfo=newFLASHWINFO();fInfo.cbSize=Convert.ToUInt32(Marshal.SizeOf(fInfo));fInfo.hwnd=hWnd;//要闪烁的窗口的句柄,该窗口可以是打开的或最小化的fInfo.dwFlags=(uint)type;//闪烁的类型fInfo.uCount=UInt32.MaxValue;//闪烁窗口的次数fInfo.dwTimeout=0;//窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度returnFlashWindowEx(reffInfo);}下面的调用:未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮flashTaskBar(this.Handle,falshType.FLASHW_TIMERNOFG);下面的调用:停止闪烁,停止后如果未激活窗口,窗口高亮flashTaskBar(this.Handle,falshType.FLASHW_STOP);
解决方案八:
引用6楼mmhh3000的回复:
闪动并停留需要使用这个函数:publicstaticexternboolFlashWindowEx(refFLASHWINFOpwfi);代码如下:[DllImport("user32.dll")]publicstaticexternboolFlashWindowEx(refFLASHWINFOpwfi);publicenumfalshType: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//未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮}publicstaticboolflashTaskBar(IntPtrhWnd,falshTypetype){FLASHWINFOfInfo=newFLASHWINFO();fInfo.cbSize=Convert.ToUInt32(Marshal.SizeOf(fInfo));fInfo.hwnd=hWnd;//要闪烁的窗口的句柄,该窗口可以是打开的或最小化的fInfo.dwFlags=(uint)type;//闪烁的类型fInfo.uCount=UInt32.MaxValue;//闪烁窗口的次数fInfo.dwTimeout=0;//窗口闪烁的频度,毫秒为单位;若该值为0,则为默认图标的闪烁频度returnFlashWindowEx(reffInfo);}下面的调用:未激活时闪烁任务栏直到发送停止标志或者窗体被激活,停止后高亮flashTaskBar(this.Handle,falshType.FLASHW_TIMERNOFG);下面的调用:停止闪烁,停止后如果未激活窗口,窗口高亮flashTaskBar(this.Handle,falshType.FLASHW_STOP);
FLASHWINFO是什么?
解决方案九:
publicstructFLASHWINFO{publicUInt32cbSize;publicIntPtrhwnd;publicUInt32dwFlags;publicUInt32uCount;publicUInt32dwTimeout;}