多媒体定时器 C的实现

// Media Timer.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
#define ONE_MILLI_SECOND 10 // 定义1ms和2s时钟间隔, 以ms为单位 ;
#define TWO_SECOND 2000
#define TIMER_ACCURACY 1 // 定义时钟分辨率, 以ms为单位
UINT wAccuracy; // 定义分辨率

void WINAPI onTimeFunc(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dwl, DWORD dw2);
int _tmain(int argc, _TCHAR* argv[])
{
	MMRESULT timer_id;
	int n = 0;
	TIMECAPS tc;
	// 利用函数timeGetDevCaps取出系统分辨率的取值范围, 如果无错则继续;
	if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) == TIMERR_NOERROR)
	{
		wAccuracy = min(max(tc.wPeriodMin, //分辨率的值不能超出系统的取值范围
			TIMER_ACCURACY), tc.wPeriodMax);
		// 调用timeBeginPeriod函数设置定时器的分辨率
		timeBeginPeriod(wAccuracy);
		// 设置定时器
	
		timer_id = timeSetEvent(ONE_MILLI_SECOND, wAccuracy, (LPTIMECALLBACK)onTimeFunc, DWORD(1), TIME_PERIODIC);
	if (NULL == timer_id)
	  {
		printf(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值