1、timeSetEvent()这个函数的各个参数都是什么意思?用的时候怎么填?
它的那个回调函数怎么填?
2回调函数:
void CALLBACK TimeProc(
UINT uID,
UINT uMsg,
DWORD dwUser,
DWORD dw1,
DWORD dw2
);的各个参数是什么意思?具体怎么填??
3、这个回调函数放在哪里?(是所有函数的外面吗?)
4、最好给我个完整的例子??
它的那个回调函数怎么填?
2回调函数:
void CALLBACK TimeProc(
UINT uID,
UINT uMsg,
DWORD dwUser,
DWORD dw1,
DWORD dw2
);的各个参数是什么意思?具体怎么填??
3、这个回调函数放在哪里?(是所有函数的外面吗?)
4、最好给我个完整的例子??
timeKillEvent(TimerID_2s); // 删除设置的分辨率 timeEndPeriod(wAccuracy); } void CCureApp::InitializeTimer() { StartOneMilliSecondTimer(); StartTwoSecondTimer(); } // 1ms定时器的回调函数,类似于中断处理程序,一定要声明为全局PASCAL函数,否则编译会有问题 void PASCAL OneMilliSecondProc(UINT wTimerID, UINT msg,DWORD dwUser,DWORD dwl,DWORD dw2) { // 定义计数器 static int ms = 0; CCureApp *app = (CCureApp *)dwUser; // 取得系统时间,以ms为单位 DWORD osBinaryTime = GetTickCount(); //输出计数器值和当前系统时间 app->fout<<++ms<<“:1ms:” <
} // 加装1ms定时器 void CCureApp::StartOneMilliSecondTimer() { if((TimerID_1ms = timeSetEvent(wTimerRes_1ms, wAccuracy, // 回调函数 (LPTIMECALBACK) OneMil liSecondProc, // 用户传送到回调函数的数据 (DWORD)this, / *周期调用,只使用一次,用TIME_ONESHOT*/ TIME_PERIODIC)) == 0) { AfxMessageBox(“不能进行定时!”, MB_OK | MB_ICONASTERISK); } else //不等于0表明加装成功,返回此定时器的句柄 fout << “16ms 计 时:” << endl; }
timeSetEvent(20,1,TimeProc1,(DWORD)m_hWnd,TIME_PERIODIC);
TimeProc1这个函数是这样的:void CALLBACK TimeProc1(UINT uID,DWORD dwUser);这里的
参数好象不对,参数具体都是什么意思啊?
间隔5ms 精度1ms 函数 用户参数 周期调用 void PASCAL MyFunc(UINT uID, UINT uMsg,DWORD dwUser,DWORD dw1,DWORD dw2) {
//UINT uID, UINT uMsg,DWORD dwUser,DWORD dw1,DWORD dw2这些的参数 几乎不用管(如果你用一个)
}
参数1为定时间隔,2为设定程序所需的最小分辨率参数3为调用回调函数,4为用户提供的回调数据,5为每隔一定时间触发一次,如为TIME_ONESHOT事件仅触发一次,下面给出一个定时100ms的例子:
m_Timer_ID=timeSetEvent(100,m_wAccuracy,(LPTIMECALLBACK)CatchMMTimer,0,TIME_PERIODIC);
上述例子是我在一个工程项目上用的,没有问题。