Функция для определения, если мышь перемещается в течение 5 секунд - PullRequest
0 голосов
/ 12 мая 2011

Я хочу определить, двигалась ли мышь за 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 ]

3 голосов
/ 12 мая 2011

Это о функции clock (). Вам нужно разделить его на CLK_TCK (константа), если вам нужны секунды.

(clock()/CLK_TCK)
0 голосов
/ 12 мая 2011

clock() обычно возвращает истекшее время в миллисекундах (это зависит от ОС, поэтому проверьте документацию вашей ОС), поэтому, когда вы проверяете, действительно ли (clock() - movetime) < 6, это не истекшее время в фактических секундах, а, скорее всего, миллисекунды.Поэтому вы, вероятно, не видите ожидаемой распечатки (т. Е. Она, вероятно, печатается каждый раз, когда вы звоните timer(), или, возможно, не печатает вообще).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...