木子屋 Dnawo's BLOG

VB6.0调用SetTimer实现定时器

👤 dnawo 📅 2010-10-12 👁 8216 👍 0 💬 0 🔄 本站原创
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 使用无效。

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 安装Microsoft .NET Framework 4.0后站… 下一篇 → Fireworks 8三步制作图片撕裂效果