質問は、題名の通りです。
具体的には、アニメーション再生の関数と別の処理の関数があり
アニメーションを再生しきった後に、さらに一秒程度の間を置いた上で
次の処理の関数を呼び出すようにしたいのです。
思いついた方法が、Sleepを使うことと、SetTimerを使うことだったんですが
Sleepでは、処理が全部停止してしまうので問題外の結果に終わり
SetTimerは、タイマーセットの直後に間をおかずに一度処理を行い、次から間をおいて処理を繰り返すようだったので、これもダメでした。
何か良い方法はないでしょうか?
開発環境はWinXPとVisualC++です。
下のコードみたいなのでどうでしょう。
DWORD dwStart = timeGetTime();
DWORD dwWait = 1000;
MSG msg;
while((timeGetTime() - dwStart) < dwWait)
{
if(PeekMessage(&msg,hWnd,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
if(msg.message==WM_CLOSE)
break;
else
DispatchMessage(&msg);
}
}
WM_TIMERを使う,の意味を間違えていませんか?
1. アニメーションの再生が終了する
2. SetTimerを発行する
3. WM_TIMERへの応答又はTimerProcにおいてKillTimerと「次の処理」を行う
ツイート | ![]() |