OnTimer不被调用诊断步骤

原创 2013年12月04日 12:06:26

在系统中设置了定时器,但发现OnTimer没有被调用。但windowproc函数是被调用的。

根据定时器的优先级确定应该是消息队列中的消息太多导致定时器消息没有被调用。

在windowproc打印日志监控什么消息被频繁调用,发现id=15的WM_PAINT消息被持续调用。

经查是在OnPaint处理中不小心注释掉了CPaintDC dc(this);这句,通常看起来这个对象好像没被使用,应该不受影响,实际上我错了,看看这个对象的构造函数都做了什么就清楚为什么一直发WM_PAINT消息。

构造函数会自动调用BeginPaint,析构调用EndPaint。BeginPaint函数的作用就是将窗口需要重绘的区域设置为空(也就是Update Region置空)
。在正常情况下,我们接收到了WM_PAINT消息后,窗口的Update Region都是非空的(如果为空就不需要发送WM_PAINT消息了)。而当你响应这个消息的时候又不调用BeginPaint来清空,窗口的Update Region就一直是非空的,系统就会一直发送WM_PAINT消息。这样就形成了一个处理WM_PAINT消息的死循环。





OnTimer使用

定时器在VC中的使用频繁,以下讨论定义器的使用方法。  定时器的原型是:  WINUSERAPI UINT WINAPI SetTimer ( HWND hWnd , UINT nIDEvent, U...
  • WINCOL
  • WINCOL
  • 2010年07月30日 19:37
  • 14528

Android的Fragment中onActivityResult不被调用的解决方案(绝对管用)

原文章地址:http://blog.csdn.net/shuaihj/article/details/46663109 常见的,我们会在FragmentActivity中嵌套一层Fragment使用...

Android的Fragment中onActivityResult不被调用的最终解决方案

摘自:http://www.myexception.cn/android/1908553.html Fragment中的onActivityResult不被调用,有几种情况,请大家一...

自定义ViewGroup ondraw方法不被调用解决办法

在我们自定义一个View, 继承自ViewGrop, 或其他某些ViewGroup的子类时, 若我们要在ViewGroup中进行一些绘制,我们会想到重写父类的ondraw, 但我们发现此时ondraw...

AndroidNDK初步开发之如何调用jni生成.so文件、Android.mk配置及第三方so不被删除的方法(二)

这节将要说明AndroidNDK开发中如何调用JNI生成.so文件的,还有Android.mk的配置问题和如何在使用eclipse将项目进行build时能够导出第三方的.so文件而不被删除的方法。...

onReceivedTitle()不被调用问题解决

情景说明今天在写一个WebView界面,该Webview中有两层网页跳转,跳转后更新ActionBar中的标题。测试时发现三星手机在WebView回退 (即:goBack())后ActionBar中的...

Android的Fragment中onActivityResult不被调用的解决方案(绝对管用)

一个大牛的博文: http://blog.csdn.net/shuaihj/article/details/46663109 常见的,我们会在FragmentActivity中嵌套一层Fra...

startService,bindServie混用之onDestroy不被调用的处理方法

startService bindServie混用 之onDestroy不被调用的处理方法

Qt插件的析构函数不被调用(QTBUG17458)

起源:因为发现插件析构函数老是不被调用,最终注意到该bug。 简单陈述一些东西,不做加工 QTBUG-17458 该BUG内容: Manual 中说:程序结束时,插件会自动...

Android的Fragment中onActivityResult不被调用的终极解决方案

(转载)http://jameszhao84.iteye.com/blog/2208433 Fragment中的onActivityResult不被调用,有几种情况,请大家一一排查。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OnTimer不被调用诊断步骤
举报原因:
原因补充:

(最多只允许输入30个字)