본문 바로가기

API / MFC/Function Information

PostMessage & SendMessage

BOOL PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
- Msg 인수로 지정된 메시지를 hWnd 윈도우의 메시지 큐에 집어넣어 윈도우
   프로시저에서 이 메시지를 처리하도록 함(큐에 성공적으로 넣으면 TRUE)
- 메시지를 큐에 넣기만 하고 바로 리턴하므로 메시지를 붙인 후 즉시 다른 작업을 함
- 만약 큐에 대기하고 있는 다른 메시지가 있다면 바로 처리가 되지 않음. 
- GetMessage함수에 의해 읽혀지고, DispatchMessage 함수에 의해 윈도우 프로시저로 보내져서 처리
- 보통 급하게 처리할 필요가 없거나 또는 지금 하고 있는 작업을 완전히 끝내야만 처리할 수 있는 메시지는 이 함수를 이용


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

- 메시지 큐에 넣는 것이 아니라 곧바로 윈도우 프로시저로 보내 즉각 처리하도록 함
- 메시지가 완전히 처리되기 전에는 리턴하지 않음(즉, 블록시킴)
- 윈도우간, 특히 윈도우와 차일드 컨트롤간의 통신에 자주 사용됨


PostMessage 함수는 큐에 넣어서 한가해질 때 어떤 일을 하라는 신호이며,

SendMessage함수는 WndProc의 case를 호출 하는 것 처럼 바로 일을 하라는 신호


참조 : 윈도우즈 API 정복(김상형 저)
관련사이트 :
http://winapi.co.kr

'API / MFC > Function Information' 카테고리의 다른 글

CreateFile Function(Windows / WINCE)  (0) 2010.03.30
SendDlgItemMessage Function  (0) 2010.03.30
CFileFind Class  (0) 2010.03.23
CFileDialog 생성자 함수(CFileDialog::CFileDialog)  (0) 2010.03.10
CWnd::UpdateData()  (0) 2010.03.09