質問です。
ウインドウのメッセージループってどういう風に書くのが確実なんでしょうか?
要求としては、メッセージループの空き時間にOnIdle()という関数を実行したいと考えています。
そこで、理想的な動作として、以下のソースを記述しました。(ホントはネットで拾った。汗
しかし、動作は理想的なのですが、これではウインドウが消えた後もメッセージループを抜けることはありませんでした。
どういう記述をすれば理想的な動作を両立できますか?
int CWindow::MsgLoop(){
    MSG msg;
    int Ret;
    while (1) { // メインループ 
        if (PeekMessage (&msg,m_hWnd,0,0,PM_NOREMOVE)) {
            Ret=GetMessage (&msg,m_hWnd,0,0) ;// メッセージ処理 
            if (Ret == 0 ) break;
            if (Ret == -1 ) break;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }else{
          OnIdle(); //独自の処理 
        }
    }
    return msg.wParam;
}