'In a module
Public Declare Function SetTimer Lib "user32" (ByVal Hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal Hwnd As Long, ByVal nIDEvent As Long) As Long
Public mHwnd As Long
Public StopHasBeenPressed As Boolean
Public Sub Set_Timer(ByVal ID As Long, ByVal Seconds As Integer)
Call SetTimer(mHwnd, ID, CLng(Seconds * 1000), AddressOf TimerProc)
End Sub
Public Sub Kill_Timer(ByVal ID As Long)
Call KillTimer(mHwnd, ID)
End Sub
Public Sub TimerProc(ByVal Hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
Kill_Timer idEvent
If Not StopHasBeenPressed Then
Form1.Label1.Caption = Time()
Call Set_Timer(mHwnd, 1)
End If
End Sub
'On Form1 with Label1, Command1, and Command2
Option Explicit
Private Sub Command1_Click()
StopHasBeenPressed = Not StopHasBeenPressed
If StopHasBeenPressed Then
Command1.Caption = "Start"
Else
Form_Load
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Initialize()
Label1.Caption = Time()
Command2.Caption = "Quit"
End Sub
Private Sub Form_Load()
Command1.Caption = "Stop"
mHwnd = Form1.Hwnd
StopHasBeenPressed = False
Call Set_Timer(mHwnd, 1)
End Sub