我用OnTimer模仿斗地主中的倒计时,结果每执行一次,程序就"打闪"一次,就是闪烁,如何解决?

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:32:49
是这样的,我:
SetTimer(1,1000,NULL);
........
OnTimer(UINT nIDEvent)
{
if(nIDEvent==1)Invalidate();//每到这个时钟就某数字自减一并在Opaint()中画出这个数字
}
......
结果闪烁,有点晃眼,我倒没什么,就怕玩家受不了。
高手,我试试看,不过刚刚我也想了个好方法,在程序中注明一下:“当玩家看到第一闪后,每隔两秒钟就眨一下眼,想问为什么?你不眨就知道了,而且很快会习惯的。”
这样当眨眼的频率与闪烁频率相同时就看不出什么了,好不好?

还有,高手,重载了那个函数后,内容应该怎么添?我对那函数知之甚少。

InvalidateRect 局部刷新
还有就是要用到 内存作图,这样会好很多!

这个是刷新界面是背景被擦除时候出现的问题

处理方法
可以重载OnEraseBkgnd方法,不调用系统的刷新背景方法,自己处理(这种方法可能会出现一些问题,处理时候要注意)