관리 메뉴

kisoo

PostMessage, SendMessage 의 차이 본문

01.About Programming /9..VC++

PostMessage, SendMessage 의 차이

JamesK78 2008. 10. 21. 00:18

이 두 메세지의 차이에 대해서 알아 보겠습니다.
우선 함수의 원형은 다음과 같습니다.  두 함수의 파라미터는 똑같습니다. 단 , 리턴값이 다르네요.

LRESULT SendMessage(
     HWND hWnd,
     UINT Msg,
     WPARAM WParam,
     LPARAM LParam
)

SendMessage() 함수는 해당 윈도의 메세지큐가 아닌 윈도 프로시져를 직접 호출 합니다.
따라서 해당 윈도 프로시져가 그 메세지를 처리 할때 까지 기다렸다가 결과 값과 함께 리턴되기에, 이 메시지가 처리 된다는 보장이 있는 것 입니다.

하지만  , PostMessage() 함수는 해당 윈도의 메세지 큐에 메세지를 추가 하고 바로 리턴 합니다. 
따라서 이 메세지가 처리 될지 않될지는 보장을 못합니다.

BOOL PostMessage(
     HWND hWnd,
     UINT Msg,
     WPARAM WParam,
     LPARAM LParam
)

Comments