窗体代码:
Option Explicit
Private Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Private 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
Dim p As Long
Private Const TIME_周期 As Long = 1
Private Const TIME_一次性 As Long = 0
Private Sub Form_DblClick()
timeKillEvent p
p = 0
End Sub
Private Sub Form_Load()
p = timeSetEvent(300000, 10, AddressOf TimeProc, 1, TIME_一次性)
Debug.Print timeGetTime
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If p Then timeKillEvent p: p = 0: Cancel = True: Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
Unload Me
End Sub
[/font]
模块代码:
Option Explicit
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long)
Debug.Print timeGetTime
End Sub
分享到:
相关推荐
在VB中使用`TimeSetEvent`,首先需要导入`winmm.dll`库,然后调用函数设置定时器,并在适当的地方取消定时器。取消定时器可以使用`TimeKillEvent`函数,同样来自Windows多媒体API。 虽然`TimeSetEvent`提供了更精确...
在VB6中,如果你需要实现高精度的定时任务,传统的Timer控件可能无法满足需求,因为它的定时精度受到操作系统限制,通常在15-20毫秒之间。这时,你可以利用Windows API中的`timeSetEvent`函数来创建一个更精确的...
可以用在无窗体的模块中,本timer类模块,完全模拟vb自带控件,事件,属性完全与vb自带的timer控件相同,例如:mTimer.Interval = 500设置计时器时间,mTimer.Enabled = True启动计时器,mTimer.Enabled = False关闭...
总结来说,`TimeSetEvent`是VB中实现多线程定时任务的一种方式,通过调用Windows API,可以创建周期性或一次性触发的定时器,回调函数会在指定时间被调用,从而执行预定的任务。这种技术尤其适合需要后台异步执行...
在VB中使用`TimeSetEvent`创建多线程定时器的步骤大致如下: 1. **声明API函数**:首先需要在代码中使用`Declare`语句声明`TimeSetEvent`函数,因为它不是VB的标准库的一部分。 2. **编写回调函数**:定义一个函数...
总结起来,VB中实现不用Timer的动画播放,主要依靠`timeSetEvent`API来实现毫秒级精度的定时,结合GDI+来绘制具有透明效果的PNG图片,以及可能的多线程技术来保证程序的稳定性和性能。通过这种方式,可以创建出流畅...
4. 在定时器回调函数`TimerHandler`中实现你的业务逻辑。 5. 当不再需要定时器时,调用`timeKillEvent`销毁定时器,并通过`timeEndPeriod`恢复系统时间分辨率。 注意,由于多媒体定时器的高精度特性,可能会对系统...
在VB.NET和C#.NET中,标准的System.Timers.Timer或者System.Windows.Forms.Timer类通常提供的是至少16毫秒的间隔,这对于许多应用来说已经足够了。然而,如果需要精确到毫秒级别的计时,我们需要借助其他方法。...
"vc高精度定时器timeSetEvent"是Windows Multimedia API (MMSystem) 中的一个函数,它提供了比标准Windows消息机制(如WM_TIMER)更高的定时精度。在描述中提到的问题,即WM_TIMER的定时误差较大,是因为WM_TIMER...
本文将深入探讨如何在C#中创建一个精确定时器,并介绍`timeSetEvent`函数,这是一个在C#中调用WinAPI实现高精度计时的方法。 ### 1. C# 内置定时器的精度问题 - **System.Threading.Timer**: 这个定时器基于线程池...
在Windows操作系统中,多媒体定时器( Multimedia Timer)提供了比普通系统定时器更为精确的定时服务。下面我们将详细介绍多媒体定时器的工作原理、使用方法以及如何在实际项目中应用。 多媒体定时器是Windows API...
3. **事件处理程序**:VB中的控件都有一系列的事件,如`Click`、`PlayStateChange`等。通过编写事件处理程序,我们可以响应用户的操作,如点击播放按钮时启动播放,点击停止按钮时停止播放。例如,可以这样编写播放...
在VC++编程环境中,`_timeSetEvent`是Windows API中的一个函数,主要用于实现高精度的定时器功能。这个函数是多媒体定时器服务的一部分,它允许开发者创建在指定时间间隔后触发的事件,这对于需要精确计时的任务,如...
在VC++编程环境中,定时器(Timer)是一个非常重要的组件,它允许程序在特定时间间隔后执行特定的任务。本文将深入探讨VC++中的定时器机制,特别是多媒体定时器(Multimedia Timer),以及如何处理毫秒级的时间精度...
在VB.NET和C#.NET中,Dock控件是一个强大的界面设计工具,它可以方便地将控件固定在窗体的边缘或填满整个窗体。以下是如何使用Dock控件的一些关键点: 1. DockStyle枚举 每个控件都有一个Dock属性,它是一个...
在VC++编程环境中,多媒体定时控件是一种非常重要的工具,特别是在开发涉及音频、视频处理或者游戏等实时性要求较高的应用时。"多媒体定时控件代码示例"标题所指的,就是利用VC++来实现多媒体定时功能的一个实例。...
3. **多媒体定时器**:Windows多媒体库(mmsysapi.dll)中的timeSetEvent函数提供了高精度定时的能力,最低可达到1毫秒。多媒体定时器适合需要精确控制时间间隔的应用,如音频处理或游戏开发。然而,它需要手动管理...
`MMSystem`库是VB中用于音频处理的一个重要库,它包含了一些处理音频设备的函数,如`sndPlaySound`用于播放声音,而`timeGetTime`和`timeSetEvent`则可用于定时操作,如定时调整音量。 3. **音量控制API**: - `...
在Windows编程中,定时器是实现程序中时间间隔控制的关键工具。`SetTimeEvent`和`QueryPerformanceFrequency`是两个与定时器相关的API函数,它们分别用于不同的定时任务。接下来,我们将深入探讨这两个函数的工作...
在你提到的“易语言两款创建时钟API”中,我们主要关注的是与定时器相关的API,即`TimerProc`、`timeKillEvent`和`timeSetEvent`。 `timeSetEvent`是Windows API中的一个函数,用于创建一个定时器事件。这个函数...