VB6.0调用SetTimer实现定时器

Timer.bas:
    
      
Option Explicit

Declare Function SetTimer Lib " user32 " ( ByVal hwnd As Long , ByVal nIDEvent As Long , ByVal uElapse As Long , ByVal lpTimerFunc As Long ) As Long
Declare Function KillTimer Lib " user32 " ( ByVal hwnd As Long , ByVal nIDEvent As Long ) As Long

Public Sub TimerProc( ByVal hwnd As Long , ByVal uMsg As Long , ByVal idEvent As Long , ByVal dwTime As Long )
MsgBox Now()
End Sub
窗体代码:
    
      
Option Explicit

Dim lngTimerID As Long
Dim BlnTimer As Boolean

Private Sub Form_Load()
BlnTimer
= False
Command1.Caption
= " 定时开始 "
End Sub

Private Sub Form_Unload(Cancel As Integer )
KillTimer
0 , lngTimerID
End Sub

Private Sub Command1_Click()
If BlnTimer = False Then
' 每5秒钟调用一次函数
lngTimerID = SetTimer( 0 , 0 , 5000 , AddressOf TimerProc)
BlnTimer
= True
Command1.Caption
= " 定时结束 "
Else
KillTimer
0 , lngTimerID
BlnTimer
= False
Command1.Caption
= " 定时开始 "
End If
End Sub
说明:
TimerProc函数定义一定要放在bas模块文件中,否则运行代码"lngTimerID = SetTimer(0, 0, 5000, AddressOf TimerProc)"会报错,
提示:操作符 AddressOf 使用无效。

你可能感兴趣的:(timer)