저는 뼈를 깍아 이것을 알게 되었습니다.
저 처럼 뼈를 깍아 아시기 보다 먼저 알아 살이 되시길 기원합니다.
간단하게 제가 이해한 대로 설명하도록 하겠습니다.
함수원형
PostMessage(HWND, hmsg, WPARAM, LPARAM)
SendMessage(HWND, hmsg, WPARAM, LPARAM)
PostMessage
PostMessage의 경우 메세지를 전달하게 되면 해당 윈도우의 메세지 큐에 추가 시킨 후 바로 리턴 한다고 합니다. 메세지 큐에 처리할 메세지가 쌓여있을 경우 언제 실행될지 모른다고 합니다.
예)
int a = 0;
PostMessage(hWnd,LB_ADDSTRING,0,(LPARAM)"포스트메세지")
a = 1;
초기 a값은 0 입니다. 그리고 포스트 메세지로 리스트에 포스트메세지란 문자를 추가 시키고 있습니다. 윈도우 큐에 메세지가 쌓여 있다면 리스트에 포스트 메세지란 문자가 추가 되기전 a 값은 1로 변경되어 있을 겁니다.
SendMessage
SendMessage의 경우 전달 즉시 윈도우 프로시져로 전달되어 실행된다고 합니다. 메세지 큐에 쌓는것이 아니라 바로 실행하는 것이죠.
예)
int a = 0;
SendtMessage(hWnd,LB_ADDSTRING,0,(LPARAM)"포스트메세지")
a = 1;
PostMessage와 같은 예제 입니다. 하지만 이 예제는 리스트 박스에 포스트메세지가 추가 되기 전에는 a값이 절대로 1로 변경되지 않습니다.
제가 이해한 내용을 바탕으로 작성하기에 잘못된 내용이 있을수도(?) 있다. ㅋㅋ
'Programer Story > Remember Story!!!!!' 카테고리의 다른 글
Little Endian / Big Endian - 메모리 저장 순서 규정 (0) | 2011.12.13 |
---|---|
컴퓨터 작업 프로시져 관리 (0) | 2011.05.29 |
MS XML 파싱할때에는... (0) | 2011.05.29 |
reinterpret_cast 연산자 (0) | 2011.05.29 |
인터페이스와 추상 클래스 (0) | 2011.05.28 |