📄 o33.htm
字号:
//结束时钟
<p>
fout < < "结束时钟" < < endl;
<p>
//删除两个定时器
<p>
timeKillEvent(TimerID_1ms);
<p>
timeKillEvent(TimerID_2s);
<p>
//删除设置的分辨率
<p>
timeEndPeriod(wAccuracy);
<p>
}
<p>注:使用完的定时器及分辨率一定要删除,否则系统会越来越慢。
<p>
void CCureApp::InitializeTimer()
<p>
{
<p>
StartOneMilliSecondTimer();
<p>
StartTwoSecondTimer();
<p>
}
<p>
//一毫秒定时器的回调函数,类似于中断处理程序
<p>
voidPASCAL//一定要声明为全局PASCAL函数,否则编译会有问题
<p>
OneMilliSecondProc(UINT wTimerID, UINT msg,
<p>
DWORD dwUser, DWORD dw1, DWORD dw2)
<p>
{
<p>
static int ms = 0;//定义计数器
<p>
CCureApp *app = (CCureApp *)dwUser;
<p>
//取得系统时间以毫秒为单位
<p>
DWORD osBinaryTime = GetTickCount();
<p>
//输出计数器值和当前系统时间到文件
<p>
app- >fout < < ++ms < < ": 1ms : "
<p>
< < osBinaryTime < < endl;
<p>
}
<p>
//加装1毫秒定时器
<p>
void CCureApp::StartOneMilliSecondTimer()
<p>
{
<p>
if((TimerID_1ms = timeSetEvent(wTimerRes_1ms, wAccuracy,
<p>
(LPTIMECALLBACK) OneMilliSecondProc,//回调函数
<p>
(DWORD)this,//用户自传送到回调函数的数据
<p>
/*周期调用,只使用一次用TIME_ONESHOT*/
<p>
TIME_PERIODIC)) == 0)
<p>
{
<p>
AfxMessageBox("不能计时", MB_OK | MB_ICONASTERISK);
<p>
}
<p>
else//不等于0表明加装成功,返回此定时器的句柄
<p>
fout < < "16ms计时:" < < endl;
<p>
}
<p> 以下为2秒定时器的回调函数和加装函数,与1毫秒的类似;
<p>
void PASCAL TwoSecondProc(UINT
wTimerID, UINT msg,
<p>
DWORD dwUser, DWORD dw1, DWORD dw2)
<p>
{
<p>
static int s = 0;
<p>
CCureApp *app = (CCureApp *)dwUser;
<p>
DWORD osBinaryTime = GetTickCount();
<p>
app- >fout < < "***********************" < <
endl;
<p>
app- >fout < < ++s < < ": 2s : " < <
osBinaryTime < < endl;
<p>
}
<p>
void CCureApp::StartTwoSecondTimer()
<p>
{
<p>
if((TimerID_2s = timeSetEvent(wTimerRes_2s, wAccuracy,
<p>
(LPTIMECALLBACK) TwoSecondProc, (DWORD)this,
<p>
TIME_PERIODIC)) == 0)
<p>
{
<p>
AfxMessageBox("不能计时", MB_OK | MB_ICONASTERISK);
<p>
}
<p>
else
<p>
fout < < "2s计时:" < < endl;
<p>
}
<p>三、(网友 leex2000
关于定时器的回答) <br>
用 Win95 的 VxD 中的VTD_Get_Real_Time 调用, 你能获得 0.8 微秒的计数.这是我所知道 Win95 能给出的最小时间间隔,
Win95 的定时器是没有用的, 因为定时器消息的优先权很低, 最多到 0.5 毫秒,再低就没戏了. <br>
<br>
</p>
</td>
</tr>
</table>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -