计时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)来取消定时器。