用于检测鼠标是否在5秒内移动的功能

时间:2011-05-12 14:01:22

标签: c windows

我想检测鼠标是否在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);
    }
}

2 个答案:

答案 0 :(得分:3)

关于clock()函数。如果需要秒,则需要将其分为CLK_TCK(常数)。

(clock()/CLK_TCK)

答案 1 :(得分:0)

clock()通常以毫秒为单位返回已用时间(这取决于操作系统,因此请查看操作系统的文档),因此当您检查是否(clock() - movetime) < 6时,这不是实际秒数内的经过时间,而是最有可能是几毫秒。因此,您可能没有看到您期望的打印输出(即,它可能会在您拨打timer()时打印,或者根本不打印)。