2011-05-12 76 views
-1

我想檢測鼠標是否在5秒內移動,如果顯示是時間已過。這是我的代碼,它似乎確定,但無法正常工作。檢測鼠標是否在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); 
    } 
} 
+3

你正在使用什麼操作系統,庫等?用'#includes'顯示完整的源文件。 – Joe 2011-05-12 14:03:57

+1

C沒有內置的支持來處理外圍設備,如鼠標。你必須指定你在做什麼環境。'WM_'常量看起來像Win32,但爲什麼讓我們猜測? – unwind 2011-05-12 14:04:04

+2

和'不正常工作'是什麼意思? – forsvarir 2011-05-12 14:04:42

回答

3

它關於clock()函數。如果你想要秒,你需要把它分成CLK_TCK(常量)。

(clock()/CLK_TCK) 
+0

它的工作謝謝你。 – Mauricio 2011-05-12 14:10:22

0

clock()通常返回以毫秒爲單位的運行時間(這取決於操作系統,所以請檢查您的操作系統的文檔),所以,當你正在檢查是否(clock() - movetime) < 6,這不是實際的秒數的時間,但最有可能毫秒。因此,您可能沒有看到您期望的打印輸出(即可能會打印有時候打電話給timer(),或者根本不打印)。