1,486
社区成员
发帖
与我相关
我的任务
分享
Private Sub Form_Load()
lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1) '定义用于接收函数返回值的变量
lmmCount = 60
End Sub
Private Sub Form_Unload(Cancel As Integer)
EndCount
End Sub
Option Explicit
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal _
uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, _
ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public lmmCount As Single
Public lTimeID As Long '定义用于接收函数返回值的变量
'timeSetEvent的回调函数
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, _
ByVal dw1 As Long, ByVal dw2 As Long)
‘ Form1.Text1.Text = Format$(lmmCount, "00.00")
’ lmmCount = lmmCount - 0.01
End Sub
Sub EndCount()
timeKillEvent lTimeID
End Sub
Private Sub Command1_Click()
lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1) '定义用于接收函数返回值的变量
lmmCount = 600
End Sub
Private Sub Command2_Click()
EndCount
End Sub
'模块
Option Explicit
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal _
uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, _
ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public lmmCount As Single
Public lTimeID As Long '定义用于接收函数返回值的变量
'timeSetEvent的回调函数
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, _
ByVal dw1 As Long, ByVal dw2 As Long)
Form1.Text1.Text = Format$(lmmCount, "00.00")
lmmCount = lmmCount - 0.01
Debug.Print Format$(lmmCount, "00.00"), lmmCount
End Sub
Sub EndCount()
timeKillEvent lTimeID
End Sub
下边的数据是“594.82”被略过了,如果播放的时间就是这个,不就少了一个音符?11楼的数据是Single,在回调中DEBUG。PRINT得到的。
594.86 594.855
594.85 594.845
594.84 594.835
594.83 594.825
594.81 594.8149
594.80 594.8049
594.79 594.7949
594.78 594.7849
594.77 594.7749
594.76 594.7649 Public lmmCount As Currency
Option Explicit
Private Declare Function timeBeginPeriod Lib "WinMM" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "WinMM" (ByVal uPeriod As Long) As Long
Private Sub Command1_Click()
Call timeBeginPeriod(10)
lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1)
lmmCount = 600
End Sub
Private Sub Command2_Click()
EndCount
Call timeEndPeriod(10)
End Sub
随意的一次测试结果数据:
599.99 599.99
599.98 599.98
599.97 599.97
599.96 599.96
599.95 599.95
599.94 599.9399
599.93 599.9299
599.92 599.9199
599.91 599.9099
599.90 599.8999
599.89 599.8899
599.88 599.8799
599.87 599.8699
599.86 599.8599
599.85 599.8499
599.84 599.8398
599.83 599.8298
599.82 599.8198
599.81 599.8098
599.80 599.7998
599.79 599.7898
599.78 599.7798
599.77 599.7698
599.76 599.7598
599.75 599.7498
599.74 599.7397
599.73 599.7297
599.72 599.7197
599.71 599.7097
599.70 599.6997
599.69 599.6897
599.68 599.6797
599.67 599.6697
599.66 599.6597
599.65 599.6497
599.64 599.6396
599.63 599.6296
599.62 599.6196
599.61 599.6096
599.60 599.5996
599.59 599.5896
599.58 599.5796
599.57 599.5696
599.56 599.5596
599.55 599.5496
599.54 599.5396
599.53 599.5295
599.52 599.5195
599.51 599.5095
599.50 599.4995
599.49 599.4895
599.48 599.4795
599.47 599.4695
599.46 599.4595
599.45 599.4495
599.44 599.4395
599.43 599.4294
599.42 599.4194
599.41 599.4094
599.40 599.3994
599.39 599.3894
599.38 599.3794
599.37 599.3694
599.36 599.3594
599.35 599.3494
599.34 599.3394
599.33 599.3293
599.32 599.3193
599.31 599.3093
599.30 599.2993
599.29 599.2893
599.28 599.2793
599.27 599.2693
599.26 599.2593
599.25 599.2493
599.24 599.2393
599.23 599.2292
599.22 599.2192
599.21 599.2092
599.20 599.1992
599.19 599.1892
599.18 599.1792
599.17 599.1692
599.16 599.1592
599.15 599.1492
599.14 599.1392
599.13 599.1292
599.12 599.1191
599.11 599.1091
599.10 599.0991
599.09 599.0891
599.08 599.0791
599.07 599.0691
599.06 599.0591
599.05 599.0491
599.04 599.0391
599.03 599.0291
599.02 599.019
599.01 599.009
599.00 598.999
598.99 598.989
598.98 598.979
598.97 598.969
598.96 598.959
598.95 598.949
598.94 598.939
598.93 598.929
598.92 598.9189
598.91 598.9089
598.90 598.8989
598.89 598.8889
598.88 598.8789
598.87 598.8689
598.86 598.8589
598.85 598.8489
598.84 598.8389
598.83 598.8289
598.82 598.8188
598.81 598.8088
598.80 598.7988
598.79 598.7888
598.78 598.7788
598.77 598.7688
598.76 598.7588
598.75 598.7488
598.74 598.7388
598.73 598.7288
598.72 598.7188
598.71 598.7087
598.70 598.6987
598.69 598.6887
598.68 598.6787
598.67 598.6687
598.66 598.6587
598.65 598.6487
598.64 598.6387
598.63 598.6287
598.62 598.6187
598.61 598.6086
598.60 598.5986
598.59 598.5886
598.58 598.5786
598.57 598.5686
598.56 598.5586
598.55 598.5486
598.54 598.5386
598.53 598.5286
598.52 598.5186
598.51 598.5085
598.50 598.4985
598.49 598.4885
598.48 598.4785
598.47 598.4685
598.46 598.4585
598.45 598.4485
598.44 598.4385
598.43 598.4285
598.42 598.4185
598.41 598.4084
598.40 598.3984
598.39 598.3884
598.38 598.3784
598.37 598.3684
598.36 598.3584
598.35 598.3484
598.34 598.3384
598.33 598.3284
598.32 598.3184
598.31 598.3083
598.30 598.2983
598.29 598.2883
598.28 598.2783
598.27 598.2683
598.26 598.2583
598.25 598.2483
598.24 598.2383
598.23 598.2283
598.22 598.2183
598.21 598.2083
598.20 598.1982
598.19 598.1882
598.18 598.1782
598.17 598.1682
598.16 598.1582
598.15 598.1482
598.14 598.1382
598.13 598.1282
598.12 598.1182
598.11 598.1082
598.10 598.0981
598.09 598.0881
598.08 598.0781
598.07 598.0681
598.06 598.0581
598.05 598.0481
598.04 598.0381
lTimeID = timeSetEvent(0, 0, AddressOf TimeProc, 0, 0)