VB .NET 如何实现窗体标题栏的闪烁

NewScar NewScar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
设计目标:实现在窗体最小化时,标题栏闪烁,类似WeChat有新消息时的状态。

设计思路:打算利用API中的FlashWindowEx方法来现实。
问题:无法实现,代码如下。恳请各位不吝赐教!

Private Declare Auto Function FlashWindowEx Lib "User32" (ByRef fwInfo As FLASHWINFO) As Boolean
Public Enum FlashWindowFlags As UInteger
FLASHW_STOP = 0
FLASHW_CAPTION = 1
FLASHW_TRAY = 2
FLASHW_ALL = 3
FLASHW_TIMER = 4
FLASHW_TIMERNOFG = 12
End Enum

Public Structure FLASHWINFO
Public cbSize As Long
Public hwnd As Long
Public dwFlags As FlashWindowFlags
Public uCount As Long
Public dwTimeout As Long
End Structure

Public Function FlashWindow(ByRef formToFlash As Form) As Boolean
Return FlashWindow(formToFlash, True, True, 5)
End Function
Public Function FlashWindow(ByRef formToFlash As Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean) As Boolean
Return FlashWindow(formToFlash, FlashTitleBar, FlashTray, 5)
End Function
Public Function FlashWindow(ByRef formToFlash As Form, ByVal FlashCount As Integer) As Boolean
Return FlashWindow(formToFlash, True, True, FlashCount)
End Function
Public Function FlashWindow(ByRef formToFlash As Form, ByVal FlashTitleBar As Boolean, ByVal FlashTray As Boolean, ByVal FlashCount As Integer) As Boolean
If formToFlash Is Nothing Then Return False
If formToFlash.IsDisposed Then Return False
If formToFlash.Handle = 0 Then Return False

Try
Dim fwi As New FLASHWINFO
With fwi
.hwnd = formToFlash.Handle
If FlashTitleBar Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_CAPTION
If FlashTray Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_TRAY
.uCount = FlashCount
If FlashCount = 0 Then .dwFlags = .dwFlags Or FlashWindowFlags.FLASHW_TIMERNOFG
.dwTimeout = 0
.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(fwi)
End With
Return FlashWindowEx(fwi)
Catch
Return False
End Try
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
FlashWindow(Me)
End Sub
...全文

相关推荐

Vb窗体闪烁、隐藏标题栏的例子

Vb窗体闪烁、隐藏标题栏的例子Vb窗体闪烁、隐藏标题栏的例子

mheva1981

Visual Basic中利用GDI+与PNG实现窗体阴影特效

VB或许不再是聚光灯下的主角,但它依然有能力打造出令人惊艳的现代界面。只要你愿意深入底层,掌握GDI+这套“老而弥坚”的工具链。窗体阴影只是一个起点。掌握了这些原理之后,你会发现——圆角窗口、动态渐变、光效反馈、甚至简单的2D动画——都不再是遥不可及的梦想。毕竟,真正的技术实力,从来不是靠“用了多新的框架”来衡量的,而是看你能不能在有限条件下,做出无限可能的效果。💡所以,下次当你面对一个平淡无奇的窗体时,不妨问自己一句:“我能给它加个阴影吗?

深刻如此

VB编程实战:坦克游戏开发与源码解析

我们可以在游戏对象中定义自定义事件,例如坦克发射炮弹时触发:End SubEnd Class在主窗体中订阅该事件:End SubEnd Sub。

小馬锅

VB6开发实战:工业系统维护与原生EXE编译指南

Visual Basic 6.0 是一种基于 COM 架构的早期 Windows 原生开发环境,其核心原理依赖 VB 虚拟机(msvbvm60.dll)和 IDE 内置调试机制,技术价值在于零运行时依赖、超低内存占用与强硬件兼容性。广泛应用于工业控制、老旧财务系统及嵌入式产线软件的维护与迭代。本文围绕 VB6 IDE 启动配置、窗体对象生命周期、工程文件(.vbp)解析、独立 EXE 编译流程,以及串口通信、Excel 自动化等工业级实操展开,特别聚焦 msvbvm60.dll 注册与 Form 对象行为两

不靠谱的糖饼

VB6界面美化与系统交互增强套件:透明窗体、浮动工具栏、桌面图标控制及动画控件源码合集

这套VB6开发资源专为提升传统Windows桌面应用的视觉表现和交互能力设计,包含大量开箱即用的界面增强模块。支持创建透明窗体、带动画效果的标题栏、不规则形状窗口以及带镂空区域的自定义窗口;提供浮动式工具栏、可拖拽分割条、多行ToolTip提示、图形化菜单(含OwnerDraw和CoolMenu两种风格);内置屏幕抓取框、高兼容日期选择器、Office风格助手控件、多帧动画控件rgAnimate等实用组件。系统级功能覆盖任务栏元素隐藏、桌面图标动态排列、图标文字透明度调节、MDI子窗体嵌入、控制台窗口创建等

redis7keeper
评论 9
收藏 已收藏
分享
返回顶部
NewScar
VB 16,718 成员 110,520 内容