C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[65233] Re:Thread에서 MM_WOM_DONE 메세지 콜백 선언하는 법
장성호 [nasilso] 1579 읽음    2011-09-26 19:22
메세지 맵은
Dispatch 함수를 override 하는  메크로 입니다.

참조
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=43

메세지 맵 선언할때 END_MESSAGE_MAP() 괄호 안에
상위 Dispatch 할 class-name을 명시해줘야 하는데...
님께서는 빠뜨렸네요

BEGIN_MESSAGE_MAP
 	MESSAGE_HANDLER(MM_WOM_DONE,TMessage, OnMM_WOM_DONE)
END_MESSAGE_MAP()
 



그런데 문제는 VCL의 TThread를 상속받은 쓰레드는
메세지 펌프 로직이 기본적으로 들어있지 않기 때문에
메세지 맵을 만들어도 소용없습니다.

왜냐하면 TThread에서는  메세지를 메세지큐에서 메세지를 가져오는 메세지 펌프 로직이 들어있지 않기 때문이죠

메세지 맵이 제대로 동작하려면
다음과 같은 메세지 펌프 루프를 코딩해줘야 할뿐 아니라
(GetMesage or PeekMessage ->  TranslateMessage -> DispatchMessage)
또 반복적으로 호출해줘야 하구요


그럼..



도대체 님이 쓰신 글 :
: BEGIN_MESSAGE_MAP
:     MESSAGE_HANDLER(MM_WOM_DONE,TMessage, OnMM_WOM_DONE)
: END_MESSAGE_MAP()
:
: 이렇게 해니 컴파일이 안되네요..
:
: Thread에서 메세지맵을 어떻게 선언해야 되나요?

+ -

관련 글 리스트
65232 Thread에서 MM_WOM_DONE 메세지 콜백 선언하는 법 도대체 1391 2011/09/26
65233     Re:Thread에서 MM_WOM_DONE 메세지 콜백 선언하는 법 장성호 1579 2011/09/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.