「応答なし」になり難くする
//*******************************************************************************
// 関数名 :時間がかかる時に,応答なしにならない様にする
// 作成日 :’07/10/05
//*******************************************************************************
BOOL WaitPeek (void)
{
MSG msg ;
::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE) ;
return TRUE ;
}
//*******************************************************************************
// 関数名 :時間がかかる時に他に制御を回す
// 作成日 :’95/12/05
//*******************************************************************************
BOOL Wait (void)
{
MSG msg ;
for (int msgCnt=0 ; msgCnt < 1000 ; msgCnt++) {
if (::PeekMessage(&msg ,NULL,0,0,PM_REMOVE)) {
if (msg.message == WM_QUIT) {
return FALSE ;
}
::TranslateMessage(&msg) ;
::DispatchMessage(&msg) ;
continue ;
}
break ;
}
return TRUE ;
}
2011/11/02 追加
//*******************************************************************************
// 関数名 :時間がかかった時に,不要なイベントをスキップする
// 作成日 :’11/03/31
//*******************************************************************************
inline
BOOL EatMessage (const HWND wnd=NULL,const UINT skipWM=WM_TIMER)
{
MSG eatMsg;
while(::PeekMessage(&eatMsg,wnd,skipWM,skipWM,PM_REMOVE)) ;
return TRUE ;
}