함수 원형
BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
PostMessage 처리 방법
Msg 를 윈도우 큐에 삽입 -> 메시지 큐에서 처리 순서 대기 -> 순서가 되면 윈도우 프로시저가 처리
주의점 : wParam 이나 lParam 값으로 지역포인터가 들어가면 안됨. -> 메시지 큐에 등록하는 시점에서 지역 포인터가 존재한다 손 치더라도, 윈도우 프로시저가 메시지를 처리하는 시점에서 포인터가 없을 수 있다.
SendMessage 처리 방법
Msg 를 바로 처리하기 위하여 윈도우 프로시저 호출 -> 즉각적인 메시지 처리
결론 : 윈도우간의 메시지 교환은 어떤 방법을 사용해야 할지 결정을 잘 해야 함. 예를 들어, WM_COPYDATA 같은 메시지로 데이터 전송하는 경우에는 즉각적으로 처리해야 하므로, SendMessage 를 사용해야 함.
즉, SendMessage 는 메시지를 당장 처리하고자 할 때 사용하며, PostMessage 는 "나 한가하니까" 시간 되면 그때 처리하세요~ 라는 용도로 쓰면 됨.
근데 난 모든 코드가 SendMessage 로
http://urin79.com
우린친구블로그
sketchbook5, 스케치북5
이 사이트를 나눔글꼴로 보기 위해서는나눔글꼴을 설치해야 합니다.
SendMessage 와 PostMessage 차이
함수 원형
BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
PostMessage 처리 방법
Msg 를 윈도우 큐에 삽입 -> 메시지 큐에서 처리 순서 대기 -> 순서가 되면 윈도우 프로시저가 처리
주의점 : wParam 이나 lParam 값으로 지역포인터가 들어가면 안됨. -> 메시지 큐에 등록하는 시점에서 지역 포인터가 존재한다 손 치더라도, 윈도우 프로시저가 메시지를 처리하는 시점에서 포인터가 없을 수 있다.
SendMessage 처리 방법
Msg 를 바로 처리하기 위하여 윈도우 프로시저 호출 -> 즉각적인 메시지 처리
결론 : 윈도우간의 메시지 교환은 어떤 방법을 사용해야 할지 결정을 잘 해야 함. 예를 들어, WM_COPYDATA 같은 메시지로 데이터 전송하는 경우에는 즉각적으로 처리해야 하므로, SendMessage 를 사용해야 함.
즉, SendMessage 는 메시지를 당장 처리하고자 할 때 사용하며, PostMessage 는 "나 한가하니까" 시간 되면 그때 처리하세요~ 라는 용도로 쓰면 됨.
근데 난 모든 코드가 SendMessage 로