各位大侠,关于倒计时的问题 我要做一个演讲比赛的倒计时器用vc控件(我不会别的)怎么实现呢?在对话框里我设置了两个按纽一个是开始计时,一个是计时结束计时显示的应该是数字,从12:00(12分钟)一直变到00:00这应该怎么实现呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 简单点的,用ontimer记时器烦的用多线程~~~ lixiaosan(小三) ( 五星(高级)) 信誉:148 2007-06-07 16:27:09 得分:0? SetTimerKillTimer能否说的详细一点呢? void CMyStatic::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default m_time--; UpdateData(FALSE); CStatic::OnTimer(nIDEvent);}void CMyStatic::SetUp(){ this->SetTimer(1,1000,NULL);}void CMyStatic::SetDown(){ this->KillTimer(1);}m_time是以秒为单位的,12*60,这样就可以了` //倒记时逻辑,实验过,没有问题//变量就不用我说了吧,对应英文的意思if((Second=Second-1)<0) { Second=59; if(Minite>0) { Minite=Minite-1; } else { Minite=59; if(Hour>0) { Hour=Hour-1; } else { Hour=23; if(Day>0) { Day=Day-1; } else { Day=364; if(Year>0) { Year=Year-1; } } } } } msdn怎么用 其实现在还不是很清楚 但是觉得大家都用 肯定有他的优势 恩应该多看看了 void CTimetest::OnTimeStart()//计时器初始化{ //MessageBox("start");// TODO: Add your control notification handler code here //m_nTimer=SetTimer(1,1000,0); this->SetTimer(1,1000,NULL); m_time=12*60; //OnDisplayTime(12,0); KillTimer(1);}void CTimetest::OnTimer(UINT nIDEvent)//计时器开始之后{ // sj--; // if(sj) // { // display_time; // }else // { // KillTimer(1); // OnTimeEnd() // } // MessageBeep(0xFFFFFFFF); // Beep // // Call base class handler. while (m_time!=0) { m_time--; UpdateData(FALSE); int Minite=m_time/60; int Second=m_time%60; //int Hour=0,Day=0,Year=0; if((Second=Second-1)<0) { Second=59; if(Minite>0) { Minite=Minite-1; } else { Minite=59;// if(Hour>0)// {// Hour=Hour-1;// }// else// {// Hour=23;// if(Day>0)// {// Day=Day-1;// }// else// {// Day=364;// if(Year>0)// {// Year=Year-1;// } } } //m_time--; //UpdateData(FALSE); CString strTmp; strTmp.Format(_T("d%:d%"),Minite,Second); MessageBox(strTmp); //OnDisplayTime(Minite,Second); } CDialog::OnTimer(nIDEvent); }void CTimetest::OnTimeEnd() { //MessageBox("end");// TODO: Add your control notification handler code here //KillTimer(m_nTimer); this->KillTimer(1);}大家看看我的代码有什么问题 怎么运行不出结果呢 编译已经通过 在OnTimer里判断if(0 == m_time){KillTimer(1);} VC语言这几个生成类是什么意思请问有什么区别 _beginThread 创建线程时出错 请sokewoniu(缩壳蜗牛)来接分, 非常感谢你的帮助!!! 关于socket的send,非常奇怪的问题 send message与post message有什么区别 debug和release的区别? dll运行结果不一致 我用DES加密后,怎样判断某一文件是否已经加密?请指教 关于属性表 _T()有什么用 数据库更新问题 请大仙指点一下这三个容易混淆的定义
烦的用多线程~~~
?
SetTimer
KillTimer
能否说的详细一点呢?
{
// TODO: Add your message handler code here and/or call default
m_time--;
UpdateData(FALSE);
CStatic::OnTimer(nIDEvent);
}void CMyStatic::SetUp()
{
this->SetTimer(1,1000,NULL);
}void CMyStatic::SetDown()
{
this->KillTimer(1);
}
m_time是以秒为单位的,12*60,这样就可以了`
//变量就不用我说了吧,对应英文的意思
if((Second=Second-1)<0)
{
Second=59;
if(Minite>0)
{
Minite=Minite-1;
}
else
{
Minite=59;
if(Hour>0)
{
Hour=Hour-1;
}
else
{
Hour=23;
if(Day>0)
{
Day=Day-1;
}
else
{
Day=364;
if(Year>0)
{
Year=Year-1;
}
}
}
}
}
恩应该多看看了
{
//MessageBox("start");// TODO: Add your control notification handler code here
//m_nTimer=SetTimer(1,1000,0);
this->SetTimer(1,1000,NULL);
m_time=12*60;
//OnDisplayTime(12,0); KillTimer(1);
}
void CTimetest::OnTimer(UINT nIDEvent)//计时器开始之后
{
// sj--;
// if(sj)
// {
// display_time;
// }else
// {
// KillTimer(1);
// OnTimeEnd()
// }
// MessageBeep(0xFFFFFFFF); // Beep
//
// Call base class handler.
while (m_time!=0)
{
m_time--;
UpdateData(FALSE);
int Minite=m_time/60;
int Second=m_time%60;
//int Hour=0,Day=0,Year=0;
if((Second=Second-1)<0)
{
Second=59;
if(Minite>0)
{
Minite=Minite-1;
}
else
{
Minite=59;
// if(Hour>0)
// {
// Hour=Hour-1;
// }
// else
// {
// Hour=23;
// if(Day>0)
// {
// Day=Day-1;
// }
// else
// {
// Day=364;
// if(Year>0)
// {
// Year=Year-1;
// }
}
}
//m_time--;
//UpdateData(FALSE);
CString strTmp;
strTmp.Format(_T("d%:d%"),Minite,Second);
MessageBox(strTmp);
//OnDisplayTime(Minite,Second);
}
CDialog::OnTimer(nIDEvent);
}
void CTimetest::OnTimeEnd()
{
//MessageBox("end");// TODO: Add your control notification handler code here
//KillTimer(m_nTimer);
this->KillTimer(1);
}大家看看我的代码有什么问题 怎么运行不出结果呢 编译已经通过
if(0 == m_time)
{
KillTimer(1);
}