Skip to content
디케2009.12.15 10:16

SendMessage 와 PostMessage 차이


함수 원형

 

BOOL PostMessage(HWND hWnd, UINT  WPARAM wParam, LPARAM lParam);

LRESULT SendMessage(HWND hWnd, UINT Msg,  wParam, LPARAM lParam);

 

PostMessage 처리 방법

Msg 를 윈도우 큐에 삽입 -> 메시지 큐에서 처리  대기 -> 순서가 되면 윈도우 프로시저가 처리

 

 : wParam 이나 lParam 값으로 지역포인터가 들어가면 안됨. -> 메시지  등록하는 시점에서 지역 포인터가 존재한다 손 치더라도, 윈도우 프로시저가 메시지를  시점에서 포인터가 없을 수 있다.

 

SendMessage 처리 방법

 

Msg 를 바로 처리하기 위하여 윈도우 프로시저 호출 -> 즉각적인  처리

 

결론 : 윈도우간의 메시지 교환은 어떤  사용해야 할지 결정을 잘 해야 함. 예를 들어, WM_COPYDATA 같은  데이터 전송하는 경우에는 즉각적으로 처리해야 하므로, SendMessage 를 사용해야 함.

 

즉, SendMessage 는 메시지를 당장 처리하고자 할 때  PostMessage 는 "나 한가하니까" 시간 되면 그때 처리하세요~ 라는 용도로  됨.

 

근데 난 모든 코드가 SendMessage 로 

http://urin79.com

우린친구블로그

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소