top
Loading...
閃爍的標題欄
本例通過調用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
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗