我想检测鼠标是否在5秒内移动,如果显示是时间已过。这是我的代码,似乎没问题,但无法正常工作。
void timer()
{
if (ismouseclick(WM_MOUSEMOVE))
{
movetime=clock();
clearmouseclick(WM_MOUSEMOVE);
}
if ((clock()-movetime)<6)
{
sprintf(time_str,"%d",clock();
outtextxy(275,483,"Time: ");
outtextxy(340,483,time_str);
}
else
{
setfillstyle(1,0);
bar(275,483,370,500);
}
}
答案 0 :(得分:3)
关于clock()函数。如果需要秒,则需要将其分为CLK_TCK(常数)。
(clock()/CLK_TCK)
答案 1 :(得分:0)
clock()
通常以毫秒为单位返回已用时间(这取决于操作系统,因此请查看操作系统的文档),因此当您检查是否(clock() - movetime) < 6
时,这不是实际秒数内的经过时间,而是最有可能是几毫秒。因此,您可能没有看到您期望的打印输出(即,它可能会在您拨打timer()
时打印,或者根本不打印)。