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)"会报错,
TimerProc函数定义一定要放在bas模块文件中,否则运行代码"lngTimerID = SetTimer(0, 0, 5000, AddressOf TimerProc)"会报错,
提示:操作符 AddressOf 使用无效。