計時vc源碼
Ⅰ c語言 倒計時時鍾程序
如果你有TC,可以試一試。
VC 的 kbhit() 不能返回 鍵名。
23:59:59 -- 86400 秒
#include <stdio.h>
#include <windows.h>
#include <conio.h>
void main()
{
long int t;
int flag =0;
t = 86400;
printf("press S start, press E stop\n");
while(1)
{
if (kbhit() == 'S' || kbhit() == 's') flag =1;
if (kbhit() == 'E' || kbhit() == 'e') flag =0;
Sleep(1000);
if (flag == 1) t = t -1;
if (t <= 0) break;
printf("%d ",t);
}
Ⅱ c語言中怎麼設置計時器
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
clock_t start = clock();
//do some process here
clock_t end = (clock() - start)/CLOCKS_PER_SEC;
cout<<"time comsumption is "<<end<<endl;
}
(2)計時vc源碼擴展閱讀
使用linux的系統設置計時器
#include <sys/time.h>
int main()
{
timeval starttime,endtime;
gettimeofday(&starttime,0);
//do some process here
gettimeofday(&endtime,0);
double timeuse = 1000000*(endtime.tv_sec - starttime.tv_sec) + endtime.tv_usec - startime.tv_usec;
timeuse /=1000;//除以1000則進行毫秒計時,如果除以1000000則進行秒級別計時,如果除以1則進行微妙級別計時
}
timeval的結構如下:
strut timeval
{
long tv_sec; /* 秒數 */
long tv_usec; /* 微秒數 */
};
Ⅲ 用vc++編一個 倒計時 程序 怎麼編要求有對話框輸入一個時間,然後倒計時,精確到毫秒。
做一個文本框 設置時間,綁定 long型變數m_tmp,做一個命令按鈕,在命令按鈕的按鈕消息里映射,編寫代碼
UpdateData(true);
SetTimer(0,m_tmp,NULL);
Ⅳ 求一個30秒倒計時顯示C語言程序
#include<stdlib.h>
#include<stdio.h>
main()
{int a=30;
for(;a>=0;a--)
{
system("cls");
printf("%d",a);
sleep(1000);
}
getch();
}
你需要的應該是這個吧,我通過dev-c++編譯運行成功。
Ⅳ 如何編寫VC++的計時器
注意:
多數C語言編譯器不支持多線程,而且ANSI C也沒有線程庫,因此C語言無法實現實際意義上的定時器(即包含觸發機制的定時器)。
回到本問題:
1 計數器:
簡單的int變數(一般為全局或相對全局)就可以實現。
2 計時器:
包含time.h,使用clock相關函數,通過運行時間差來實現計時功能。示例:
/*@*/ clock_t startstart = clock();
……
/*@*/ clock_t endend = clock();
float start2end = (float)(endend-startstart)/CLOCKS_PER_SEC;
// 這里的start2end就是時間差
3 定時器
使用系統API,比如Windows下的Sleep()函數(注意,是大寫),原型如下:
VOID Sleep(
DWORD dwMilliseconds // sleep time in milliseconds
);
Ⅵ VC倒計時程序怎麼編
不斷獲取當前時間,用你設定的時間減當前時間就是倒計時
Ⅶ VC++ 中如何做個倒計時程序
最簡單的方法就是使用OnTimer函數了,舉例如下:
1.建立一個對話框工程,給對話框加入WM_TIMER消息映射函數OnTimer,在OnInitDialog函數加入:
SetTimer(0,0,NULL); //啟動定時器0通道
給對話框加入變數CTime m_bTime,m_setTime;
給對話框加入一個CEdit控制項,並關聯變數CString m_secondStr;
2.在OnTimer函數中加入代碼:
m_bTime = CTime::GetCurrentTime(); //取得當前時間
static CTimeSpan tp = m_setTime - m_bTime;
m_secondStr.Format("剩餘時間:%d天%d小時%d分%d秒",
tp.GetDays(),tp.GetHours(),tp.GetMinutes(),tp.GetSeconds());
UpdateData(false);
3.改變m_setTime,便可以設定到期時間。
Ⅷ 哪個大神能給個VC計時器的代碼。我要用於五子棋中的,簡單的,倒計時十分鍾的,求大神顯靈
用gettickcount函數。
Ⅸ 幫忙用VC++6.0編寫一個簡易計時器。當滑鼠左鍵單擊時開始計時,滑鼠右鍵單擊時停止計時。
// 下面代碼實現暫停計時器並延遲20秒再啟動
killtime(1); // 停止1號計時器
SetTimer(2,20000,NULL); // 啟動2號計時器,20秒後將觸發OnTimer函數
// 下面是OnTimer函數實現
void OnTimer(UINT nIDEvent)
{
switch (nIDEvent){
case 1:
// 完成定時器1的功能
break;
case 2:
KillTime(2); // 殺掉定時器2
SetTimer(1,Step,NULL); // 啟動定時器1
break;
}
}
在編程時,會經常使用到定時器。使用定時器的方法比較簡單,通常告訴Windows一個時間間隔,然後WINDOWS以此時間間隔周期性觸發程序。通常有兩種方法來實現:發送WM_TIMER消息和調用應用程序定義的回調函數。
1.1 用WM_TIMER來設置定時器
先請看SetTimer這個API函數的原型
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定時器ID,多個定時器時,可以通過該ID判斷是哪個定時器
UINT uElapse, // 時間間隔,單位為毫秒
TIMERPROC lpTimerFunc // 回調函數
);
例如
SetTimer(m_hWnd,1,1000,NULL); //一個1秒觸發一次的定時器
在MFC程序中SetTimer被封裝在CWnd類中,調用就不用指定窗口句柄了,例如:
UINT SetTimer(1,100,NULL);
函數反回值就是第一個參數值1,表示此定時器的ID號。
第二個參數表示要等待100毫秒時間再重新處理一次。第三個參數在這種方法中一般用NULL。
注意:設置第二個參數時要注意,如果設置的等待時間比處理時間短,程序就會出問題了。
1.2 調用回調函數
此方法首先寫一個如下格式的回調函數
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime);
然後再用SetTimer(1,100,TimerProc)函數來建一個定時器,第三個參數就是回調函數地址。
二、多個定時器的實現與應用
我們在安裝定時器時都為其指定了ID,使用多個定時器時,該ID就發揮作用了。
不使用MFC時,當接收到WM_TIMER消息,WPARAM wParam中的值便是該定時器的ID
使用MFC時就更簡單了,我們為其增加WM_TIME的消息處理函數OnTimer即可,請看如下例子
void CTimerTestDlg::OnTimer(UINT nIDEvent)
{
switch (nIDEvent)
{
case 24: ///處理ID為24的定時器
Draw1();
break;
case 25: ///處理ID為25的定時器
Draw2();
break;
}
CDialog::OnTimer(nIDEvent);
}
當你用回調函數時,我們可以根據nTimerid的值來判斷是哪個定時器,例如:
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
switch(nTimerid)
{
case 1: ///處理ID為1的定時器
Do1();
break;
case 2: ///處理ID為2的定時器
Do2();
break;
}
}
三、取消定時器
不再使用定時器後,我們應該調用KillTimer來取消定時,KillTimer的原型如下
BOOL KillTimer(
HWND hWnd, // 窗口句柄
UINT_PTR uIDEvent // ID
);
在MFC程序中我們可以直接調用KillTimer(int nIDEvent)來取消定時器。