Win32API質問箱 Build31
レス数が900を超えています。1000を超えると表示できなくなるよ。
0940デフォルトの名無しさん
2005/05/28(土) 06:22:54ウインドウのメッセージループってどういう風に書くのが確実なんでしょうか?
要求としては、メッセージループの空き時間に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;
}
レス数が900を超えています。1000を超えると表示できなくなるよ。