CWinApp::OnIdleは、アイドル状態の時の処理を記述するためのメンバ関数・・・。
WindowsAPIのPeekMessageの頁で、アイドル状態の時にTextOutでウィンドウメッセージが来なかった回数(アイドル処理の回数)を表示した・・・。
MFCにおいてCWinApp::OnIdleは、このアイドル処理の部分である・・・。
ここに処理を書くと、アイドル状態時に実行される・・・。
で、引数にはアイドル処理の回数lCountが自動的に渡される・・・。
lCountは、マウスを動かすなどして、ウィンドウメッセージを発生させ、アイドル状態から抜けると0にリセットされる・・・。
今回はその回数lCountを表示する・・・。
CWinApp_.hで、
InitInstanceとともにOnIdleもオーバーライド・・・。
CWinApp_.cppのOnIdleの定義は、
OnPaint以外での描画なので、m_pMainWndをCClientDCのオブジェクトdcに渡している・・・。
lCountをcstrLCountに文字列としてセットし、dcのTextOutメンバ関数で描画・・・。
今回はlCountが50000以上なら、FALSEを返して、次からアイドル処理が実行されないようにした・・・。
マウスを動かすなどして、ウィンドウメッセージを発生させると、再びアイドル処理が実行されるようになっている・・・。
もちろん、TRUEを返すと、次のアイドル処理も実行される・・・。
実行すると、
lCountが増える・・・。
マウスを動かすと、再び0からスタートとなる・・・。
50000以上になると、
lCountは止まる・・・。
マウスを動かすと、再び0からスタートとなる・・・。
Sample/CWinApp_.h at master · bg1bgst333/Sample · GitHub
Sample/CWinApp_.cpp at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.h at master · bg1bgst333/Sample · GitHub
Sample/CFrameWnd_.cpp at master · bg1bgst333/Sample · GitHub