MFC 如何实现倒计时钟表

alang512 2010-12-05 06:48:00
请问 各路高手,如何实现在对话框里的编辑框里显示 倒计时钟表(显示 时 分 秒),就像彩票开奖时间 倒计时一样.
我知道,首先 在 BOOL CLotteryDlg::OnInitDialog()函数里 添加 SetTimer(1,1000,0); //设置定时器 ,然后添加WM_TIMER消息映射,void CLotteryDlg::OnTimer(UINT nIDEvent) 函数,可是尝试了好几种方法都无法实现,

请问 哪位高手做过这种倒计时钟表啊,提供下思路啊? 如果代码的,也可以提供啊。
本人想通过倒计时来实现自动调用此函数
ShellExecute(NULL,NULL,"http://www.95wangming.com",NULL,NULL,SW_SHOW);

谢谢
...全文
827 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alang512 2010-12-05
  • 打赏
  • 举报
回复
呵呵... 我终于搞定了,不过跟楼上的不一样啊
我还是把自己的代码拿出来分享吧

我已经在构造函数里 初始化 count=600 即10分钟的倒计时
//10分钟倒计时
void CWenDlg::OnTimer(UINT nIDEvent)
{
CDialog::OnTimer(nIDEvent);
CString str,str1,str2;
int Minute,Second; //分,秒
Minute=count/60; //分
Second=count%60; //秒
if(Second==0)
{
Second=59;
if(Minute>0)
Minute=Minute-1;

}
else
{
Second=Second-1;
}
str2.Format("%d:",Minute);
str1=str1+str2;
str2.Format("%d",Second);
str1=str1+str2;
str=str1;
SetDlgItemText(IDC_EDIT1,str);
if(Minute==0&&Second==0)
KillTimer(1);
count=count-1;
}



wkq87 2010-12-05
  • 打赏
  • 举报
回复
应该可以实现吧,OnTimer函数中秒数--
Eleven 2010-12-05
  • 打赏
  • 举报
回复

// 随手写的,没有经过严格测试
void CXXDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(1 == nIDEvent)
{
CString str(_T(""));
#define MAX_VALUE 59
static int nHour = MAX_VALUE;
static int nMinute = MAX_VALUE;
static int nSecond = MAX_VALUE;
--nSecond;

if(!nSecond)
{
--nMinute;
if(!nMinute)
{
--nHour;
if(!nHour)
{
SetDlgItemText(IDC_EDIT1, _T("00 : 00 : 00"));
KillTimer(nIDEvent);
AfxMessageBox(_T("Game Over!"));
return ;
}
nMinute = MAX_VALUE;
}
nSecond = MAX_VALUE;
}
str.Format(_T("%02d : %02d : %02d"), nHour, nMinute, nSecond);
SetDlgItemText(IDC_EDIT1, str);
}
CDialog::OnTimer(nIDEvent);
}
zzw820626 2010-12-05
  • 打赏
  • 举报
回复
楼上说的是对的,应该是你代码有问题。
小马喝水 2010-12-05
  • 打赏
  • 举报
回复
通过SetTimer为什么不能实现呢,在OnInitDialog中得到开始倒计时的时间,在OnTimer中每次将这个时间减1,同时更新编辑框的显示,应该就可以了

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧