谁知道如何使用精准的定时器 SetTimer这个东西不准,谁还有好的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只需毫米级精度,好好看看MSDN上对这几个函数的介绍,可以用timeSetEvent 实现自己的定时器 timeBeginPeriod timeEndPeriod timeGetDevCaps timeGetSystemTime timeGetTime timeKillEvent TimeProc timeSetEvent QueryPerformanceFrequency()和QueryPerformanceCounter()要准确多了 void CMPFMSDoc::StartHighTimer(){ TIMECAPS timecaps; int TimerResolution; //i=0; //从系统获得关于定时器服务能力的信息, //分辨率不能超出系统许可值(1到16毫秒) if (timeGetDevCaps(&timecaps,sizeof(TIMECAPS))==TIMERR_NOERROR) TimerAccuracy=Min(Max(timecaps.wPeriodMin, Accuracy),timecaps.wPeriodMax); timeBeginPeriod(TimerAccuracy); //设置定时器分辨率 TimerResolution=m_sample_delta; //设置定时间隔为5毫秒 //产生间隔5毫秒,周期执行的定时器事件;启动定时器 //PointFunction=HighTimerCallProc;//把HighTimerCallProc函数的地址赋予函数指针*PointFunction TimerID = timeSetEvent(TimerResolution,TimerAccuracy,(LPTIMECALLBACK)HighTimerCallProc,(DWORD)this,TIME_PERIODIC); if(TimerID==0) { // // AfxMessageBox ("不能进行定时!"); AfxMessageBox("不能进行定时!"); } }void CALLBACK CMPFMSDoc::HighTimerCallProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1,DWORD dw2)//void CALLBACK HighTimerCallProc(){..................你要做的事情}以上是多媒体精密定时器 请教两个COM的基本问题 如何在任意应用程序的菜单栏添加一个按钮? 通信问题! 菜问题,控件ID的 加载工具条程序无法运行,出现0xC0000005:Access Violation错误! 如果要取得剪贴板里的内容的类型应该怎么做? 大家帮我看看这一句编译错误语句的原因! 为什么MFC下的控件随着xp主题的更换颜色发生变化 lnk2005 重复定义问题 一个本该创建成Win32 Application的项目,创建成了Win32 Console Application,我记得不需要从头来过的。怎么在Project Settings里改过来? 网络编程模型怎么选择? 请问关于内存峰值的问题!
timeBeginPeriod
timeEndPeriod
timeGetDevCaps
timeGetSystemTime
timeGetTime
timeKillEvent
TimeProc
timeSetEvent
void CMPFMSDoc::StartHighTimer()
{
TIMECAPS timecaps;
int TimerResolution;
//i=0;
//从系统获得关于定时器服务能力的信息,
//分辨率不能超出系统许可值(1到16毫秒)
if (timeGetDevCaps(&timecaps,sizeof(TIMECAPS))==TIMERR_NOERROR)
TimerAccuracy=Min(Max(timecaps.wPeriodMin,
Accuracy),timecaps.wPeriodMax);
timeBeginPeriod(TimerAccuracy);
//设置定时器分辨率
TimerResolution=m_sample_delta; //设置定时间隔为5毫秒
//产生间隔5毫秒,周期执行的定时器事件;启动定时器
//PointFunction=HighTimerCallProc;//把HighTimerCallProc函数的地址赋予函数指针*PointFunction
TimerID = timeSetEvent(TimerResolution,TimerAccuracy,(LPTIMECALLBACK)HighTimerCallProc,(DWORD)this,TIME_PERIODIC);
if(TimerID==0)
{
// // AfxMessageBox ("不能进行定时!");
AfxMessageBox("不能进行定时!");
}
}void CALLBACK CMPFMSDoc::HighTimerCallProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1,DWORD dw2)
//void CALLBACK HighTimerCallProc()
{
..................你要做的事情
}以上是多媒体精密定时器