1 WM_TIMER
消息响应中的一些重要的知识点
- Timer使用的是时间中断响应计时,windows的时间中断每1/18秒触发一次,所以Timer最低精度约在55ms,低于这个时间则精度不够。
- 如果要启动多个定时器就多次调用SetTimer成员函数。另外,在不同的CWnd中可以有ID相同的定时器,并不冲突。(百度百科:TIMER)
- 如果要实现更高精度的定时可以使用多媒体定时器,其函数
timeSetEvent()
(未测试)
2 使用Invalid()
刷新窗口会闪屏
解决办法1:把dialog的ClipChildren属性设置为true。意思就是,在绘制窗口的时候,把控件区域剪切掉,等绘制完成后在复制回来,这个属性简直就是为绘制量身定制的,于是上面的问题解决了,并且如此简单,就点一下。原来解决方案如此简单。
此方法作者说有可能出现问题:如果频繁进行绘制刷新,这个毫无疑问会出现闪屏的情况。
解决办法:运用双缓冲,无压力。就是在每次绘制的时候,直接贴上去。
OnClose()和 OnDestroy()的区别
原文地址:总结OnOK()、OnCancel()、OnClose()、OnDestroy()之间的区别
OnOK()和OnCancel()是CDialog基类的成员函数,