请问各位,我想在对话框程序上实现报警提示的功能,即达到报警的条件后,有一个红色的报警灯在闪烁,否则该报警灯是绿色的。报警灯其实 就是一个或两个位图,不报警时画绿色的位图,报警时画红色的位图,不过要实现闪烁的效果。
我想用画位图的方法就可以实现,可是思路还是不具体。希望那个大家指点一下。我考虑先在Onpaint()函数中调用了一个函数画出绿色的位图。做一个定时器,当报警时将设置的一个标记量变为真,然后在定时器相应的函数里根据标记变量的真值画红色的位图。这样就可以达到闪烁了。可是因为我之前已经用了一个定时器,所以一共有两个定时器了。结果运行画出一次红色位图后程序就崩溃了。大家看看为什么啊。两个定时器如何使用,还有没有更好的方法来实现这个报警闪烁功能。
我觉得问题好像出在定时器上,可又找不出问题来。我的定时器:#define TIMER_UPDATETIME 1
#define TIMER_UPDATELIGHT 2//分别在需要的时候开启定时器,第一个是做其他用途的,和报警没关系
::SetTimer(m_hWnd,TIMER_UPDATETIME,1000,NULL);::SetTimer(m_hWnd,TIMER_UPDATELIGHT,2000,NULL);//处理函数,其中第二个是作画图的,具体内容就省略了。因为第一次可以画
void CTmCETCirDlg::OnTimer(UINT_PTR nIDEvent)
{
switch (nIDEvent)
{
case TIMER_UPDATETIME:
{
.....
}
break;
case TIMER_UPDATELIGHT:
{
.......
}
break;
}
}
//这个是在需要的时候关掉第二个定时器
::KillTimer(m_hWnd,TIMER_UPDATELIGHT);多谢大家给点建议吧