先看下MSDN对OnIdle()介绍:
CWinApp::OnIdle
OnIdle is called in the default message loop when the application’s message queue is
empty. Use your override to call your own background idle-handler tasks.
对于一般桌面应用程序中比较少重载这个函数。对于像是视频游戏这一块确有不少用处。在Win32 SDK的开发环境中,通过在消息循环中添加自已的render()等接口来使自已的程序核心运转起来,这也是常用的一种办法。来到MFC的环境中,保证程序运转的核心循环已经被整合到MFC中去了,这时侯要想将自已的接口函数可以合理的插进MFC的循环结构中,那么这个OnIdle()就是一个非常好的地方,在这儿你可以让你的代码获的足够的运行机会。先看看MSDN中对MFC的程序中Idle状态的处理:
http://www.cnblogs.com/kex1n/archive/2012/03/02/2377621.html