2010년 7월 19일 월요일

[MFC] Sleep()함수 대신 프로그램 딜레이(Delay) 시키기

자료출처 : http://blog.naver.com/ktguni/150074315731

 

Sleep()함수를 쓰면 지정된 시간동안, 메세지루프를 돌지 않기 때문에 프로그램이 먹통이 되거나 우리가 원하는 결과가 나타나지 않을 수 있다. 아래의 함수를 정의해서 사용하면, Sleep()하는 효과를 나타내면서 메세지루프를 돌기 때문에 위와 같은 현상을 해결할 수 있다.

 

VOID Cxxx::Wait(DWORD dwMillisecond)
{
 MSG msg;
 DWORD dwStart;
 dwStart = GetTickCount();
 
 while(GetTickCount() - dwStart < dwMillisecond)
 {
  while(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
  {
   TranslateMessage(&msg);
   DispatchMessage(&msg);
  }
 }
}

댓글 없음:

댓글 쓰기