SendMessage와 PostMessage
SendMessage() : 함수호출과 비슷. 실행을 보장.
- 콜백함수를 직접 호출하고 바로 함수 포인터로 들어간다.
- 메세지 처리가 끝났을 때 리턴.
- critical한 메세지 처리
- WM_COPYDATA는 SendMessage로만 가능.
PostMessage() : 실행을 보장하지 않는다.
- 메세지 큐에 메세지를 넣는다.
- 메세지를 push하면 리턴된다.
- 처리시간이 길면 괜찮다.
실습17
SendMessage()
메세지 박스가 먼저 뜨고 다이얼로그가 닫힌다.
PostMessage()
다이얼로그가 먼저 닫히고 메세지 박스가 뜬다.
사용자 정의 윈도우 메세지
WM_USER(0x0400)~0x7FFF : 사용자 윈도우 클래스의 사용에 대한 정수 메세지
0~WM_USER-1 : 윈도우즈에서 사용하기 위해 예약된 메세지
WM_APP~0xBFFF : 윈도우즈에서 미래 사용을 위해 예약된 메세지
0xC000~0xFFFF : 응용프로그램에서 문자열 메세지를 위해 사용
사용자 정의 메세지 define
#define WM_USER_EXAMPLE WM_USER+?
헤더 파일 설정
afx_msg LONG onUserMessage(WPARAM wParam, LPARAM lParam);
소스파일에서 메세지 맵 설정
ON_MESSAGE(WM_USER_EXAMPLE,OnUserMessage)
※ wParam이나 lParam을 통해 (힙)데이터의 포인터를 날림.
'컴퓨터 공부 > MFC 프로그래밍' 카테고리의 다른 글
[5월 21일 3교시] 뷰로부터 document 분리 (0) | 2009.05.21 |
---|---|
[5월 21일 2교시] 트레이 아이콘 (0) | 2009.05.21 |
[5월 20일 3교시] 프로퍼티 시트2 + 고급 이벤트 메세지 1 (0) | 2009.05.20 |
[5월 20일 2교시] 공통 다이얼로그 + 프로퍼티 시트 1 (0) | 2009.05.20 |
[5월 20일 1교시] 트리 컨트롤 2 (0) | 2009.05.20 |