欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

MFC 多媒体计时器示例(源代码下载)

最编程 2024-10-06 16:29:35
...
UINT CMed_timeDlg::CreateTimer() { timeBeginPeriod(1);//设置定时器设备的最小时间分辨率 timerID = timeSetEvent(1000, 1, TimeProc, (DWORD)this, TIME_PERIODIC); return timerID;//返回定时器ID // timeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK IP TimeProc, DWORD_PTR dwUser, UINT fuEvent); //创建并初始化定时器事件,定时器回调函数入口地址 //uDelay:定时器触发时间间隔,以毫秒为单位 //uResolution:定时器设备精度,以毫秒为单位,,默认为1ms //LpTimeProc:定时器出发时间的回调函数的地址 //dwUser:传递给回调函数的数据 //fuEvent:定时类型,TIME_ONSHOT表示uDelay毫秒后只产生一次事件,TIME_PERIOFIC表示每隔uDelay毫秒周期性的产生事件 } void CMed_timeDlg::DestroyTimer() { timeKillEvent(timerID);//销毁定时器 timeEndPeriod(1);//清除上次调用 timeBeginPeriod 函数时指定的最小计时器分辨率 } void CALLBACK CMed_timeDlg::TimeProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2) { CMed_timeDlg* time_dlg = (CMed_timeDlg*)dwUser; time_dlg->OnTimer(uID ); //uID:多媒体定时器的ID,ID值由timeSetEvent创建定时器事件时返回 //uMsg:保留 不使用 //dwUser:由timeSetEvent传递的用户数据 //dw1,dw2:保留 不使用 } void CMed_timeDlg::OnBUTTONstart() { CreateTimer(); } void CMed_timeDlg::OnBUTTONstop() { DestroyTimer(); } int i=0; void CMed_timeDlg::OnTimer(UINT nIDEvent) { CString str; i++; str.Format("%d",i); SetDlgItemText(IDC_STATIC1,str); }