큐에 메세지가 들어올때 까지 기다리는 특징이 있음. 즉 메세지가 없으면 return을 안함. (WM_QUIT)메세지를 받으면 flase return
큐에 있는 메세지를 슬쩍 본다. 큐에 메세지가 있으면 있는대로 없으면 없는대로 return됨
PeekMessage는 큐에 메세지가 들어오지 않아도 return이 가능하다.
따라서 메세지 호출이 안되었을때를 사용 가능->else{}
cpp
// 기본 메시지 루프입니다:
while (true)
{
//마지막 인자는 본 메세지를 제거할지 안할지 결정 옵션 사용(PM_REMOVE). 제거해야지 다음 메세지를 볼수 있겠지??
if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) {
/* if (GetMessage(&msg, nullptr, 0, 0) == WM_QUIT)
break;*/
if (WM_QUIT == msg.message)
break;
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
else
{
//메세지가 없는 동안 호출
}
}
메세지 기반 방식이 아닌 방식이 아닌 else를 통한
비동기 방식(메세지 받지 않을때에도 계속 동작)