一个简单的计时器

最近在看VC++,看到状态栏的编程时,有一点是讲到在边框加上一个时间,并且让时间运行的例子。我把它放在对话框来完成,并加了一点小提示,很简单的程序,但毕竟是初学者,请高手别BS。

 

要求很简单:   1、按下开始按钮,在编辑框显示当前时间。

                        2、让时间运行。

                        3、按下对话框的关闭,显示提示,确定关闭时,显示已运行的时间。

第一步:响应开始按钮,在该函数里面用CTime::GetCurrentTime()获取当前系统时间,用CTime::Format()将时间按要求转换成字符,用SetDlgItemText()将字符串显示到编辑框。为了让编辑框的宽度巧好是获取时间字符串的宽度,用一函数来设定(纯粹是突发奇想),该函数式CEdit::GetRect().先使用GetTextExtend()获取时间字符串的宽度,结果放到CSize对象中,在用GetRect()设定即可。

第二步:让时间与系统时间同步运行,增加WM_TIMER消息响应,用SetTime()函数,每1000毫秒发送一次,其它操作与第一步相同。

第三步:点击弹出提示对话框。用到MessageBox(或AfxMessageBox()),当确定关闭时,显示运行的总时间,(开始时间与结束的时间差)。

总结:CTime 成员函数有许多可以用来转换的,我的想法就是获取时间的时,分,秒,然后保存在int变量中,然后再作差,接着在用itoa()转换成字符串,再拼接起来。这种方法显得有些“烦”,有没有比较好的办法呢?用MessageBox()输出,这样略显复杂,而且显示出来不是想要结果。例如我要输出的是:“运行时间:0:1:10”这样,用MessageBox好像无法满足,哪位有比较好的方法可以实现的?

 

部分截图:

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值