PeekMessage

GetMessage 는 대기 시간 동안 아무 것도 하지 않는다. 따라서 실시간의 반응이 중요한 경우 PeekMessage함수를 사용한다.
PeekMessage는 계속 메시지 큐에 메시지가 있는지 확인하도록 한다.

BOOL WINAPI PeekMessage(
_Out_    LPMSG lpMsg,
_In_opt_ HWND  hWnd,
_In_     UINT  wMsgFilterMin,
_In_     UINT  wMsgFilterMax,
_In_     UINT  wRemoveMsg
);

PM_NOREMOVE

PeekMessage가 처리한 후 메시지를 큐에서 제거하지 않는다.

PM_REMOVE

처리한 후 큐에서 제거한다.

PM_NOYIELD

위의 두 옵션과 조합해 사용한다. 다른 스레드에게 제어를 양보하지 않는다. 입력 대기등의 상황도 허용하지 않는다.
기본으로 모든 메시지가 처리되므로 종료라도 하고 싶다면 필터를 설정하자. 만일 그렇지 않으면 넌 모든 제어를 잃게 되겠지.

Leave a Reply