闪烁的标题栏

豆豆网   技术应用频道   2006年07月28日  【字号: 收藏本文

本文详细介绍闪烁的标题栏

  本例通过调用API函数 FlashWindow 实现了窗体标题栏的闪烁,标题栏的闪烁通常用来引起使用者的注意。

  在VB中声明这个API函数的方法是:

     Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long,
   ByVal bInvert As Long) As Long

  其中各个参数的意义如下表所示:

  参数 意义

  hwnd Long,要闪烁显示的窗口的句柄

  bInvert Long,TRUE(非零)表示切换窗口标题;FALSE返回最初状态

  返回值 Long,如窗口在调用前处于活动状态,则返回TRUE(非零)

  为了使窗体出现闪烁的效果,我们在Timer控件的Timer属性中调用FlashWindow函数即可,使用的方法如下:

    Call FlashWindow(Me.hwnd, True)

  其中Me.hwnd是当前窗体的句柄,而把bInvert设为True则表示进入标题栏闪烁状态。

  而停止闪烁的方法只要把bInvert设为False就行了,如下所示:

  Call FlashWindow(Me.hwnd, False)

  好了,非常简单,试试把它用到你的程序中去吧。

  为了学习方便,以下提供了源代码并附详细的中文注释:

  -------------------------------------------

  一个窗体标题闪烁的例子

  -------------------------------------------

  程序说明:

  本例通过调用API函数 FlashWindow 实现了窗体标题栏的闪烁,标题栏的闪烁

  通常用来引起用户的注意。

  -------------------------------------------

  【VB声明】

  Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

  【说明】

  闪烁显示指定窗口。这意味着窗口的标题和说明文字会发生变化,似乎从活动切换到非活动状态、或反向切换。通常对不活动的窗口应用这个函数,引起用户的注意

  【返回值】

  Long,如窗口在调用前处于活动状态,则返回TRUE(非零)

  【备注】

  该函数通常与一个计数器组合使用,生成连续的闪烁效果。在windows

  nt及windows for workgroup中,bInvert参数会被忽略。但在windows 95中不会忽略

  【参数表】

  hwnd ----------- Long,要闪烁显示的窗口的句柄

  bInvert -------- Long,TRUE(非零)表示切换窗口标题;FALSE返回最初状态

  Private Declare Function FlashWindow Lib "user32" ( _
ByVal hwnd As Long, ByVal bInvert As Long) As Long

  用来标示当前是否处于闪烁状态,取值True/False

  Dim OnFlash As Boolean
Private Sub Command1_Click()

  如果没有闪烁,开始闪烁

  If OnFlash = False Then
Command1.Caption = "停止闪烁"
Timer1.Enabled = True
OnFlash = True

  否则,停止闪烁

  Else
Timer1.Enabled = False
Command1.Caption = "窗体标题栏闪烁"

  这一语句是必须的,不然停止闪烁时标题栏可能会处于灰暗状态

  Call FlashWindow(Me.hwnd, False)
OnFlash = False
End If
End Sub

  以一定时间间隔闪烁,可以通过改变Timer1控件的Interval属性的值来改变

  Private Sub Timer1_Timer()

  调用 FlashWindow函数,Me.hwnd是Form1窗体的句柄

  Call FlashWindow(Me.hwnd, True)
End Sub

责编:豆豆技术应用

正在加载评论...