PeekMessage

김태훈·2024년 1월 7일
0

Win32API

목록 보기
3/24
post-custom-banner

GetMessage

큐에 메세지가 들어올때 까지 기다리는 특징이 있음. 즉 메세지가 없으면 return을 안함. (WM_QUIT)메세지를 받으면 flase return

PeekMesssage

큐에 있는 메세지를 슬쩍 본다. 큐에 메세지가 있으면 있는대로 없으면 없는대로 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를 통한
비동기 방식(메세지 받지 않을때에도 계속 동작)

profile
복습을 위한 핵심 내용 및 모작
post-custom-banner

0개의 댓글