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
[40786] Re:WndProc에 대해서 다시 질문드립니다.
강준구 [] 1234 읽음    2005-06-28 11:21
http://kr.ks.yahoo.com/service/ques_reply/ques_view.html?dnum=JAIAB&qnum=127167
위 링크는 VC 에서 사용하는 방법인데 참고 하세요.

1. 이전 메세지를 사용하기 위해 BEGIN_MASSAGE_MAP 으로 선언된  Form 이 있다면
그 Form 들은 수정 해줘야 메세지를 받을 수 있겠죠..

2. RegisterWindowMessage 에서 반환된 메세지만 바꿔서 보내주면 되겠네요..

3. 이미 if(Message.Msg==uMsg)   메세지를 처리해서 받고 있죠. 더 이상 switch 문이 필요 없을듯..
   <참고>  case 문 다음에는 상수만이 올 수 있죠. case WM_USR_MSG 는 문법 오류...






공윤경 님이 쓰신 글 :
: 감이 잡혔다고 말씀드리고 싶지만 아직도 헷갈리고 잘 모르겠는...제 심정 이해해주셔으면~~ ㅠㅠ 합니다.
:
: ResigterWindowMessage로 처음에 등록하는건 제가 define한 예를 들어
: #define WM_MYMESSAGE WM_APP+1
: 이라면
: uMsg=ResisterWindowMessage("WM_MYMESSAGE");   <--FormCreate안에
:
: WndProc은 메인에 있거든요.
: void __fastcall TFormMain::WndProc(Messages::TMessage &Message)
: {
:     if(Message.Msg==uMsg)
:         switch (Message.Msg) {
:         case WM_APP+1:
:         ShowMessage("WM_APP+1");
:         break;
:         case WM_USR_MSG:
:         ShowMessage("USR MSG");
:         break;
:     }
:     TForm::WndProc(Message);
: }
:
: 걍 지금 이 메세지를 받아 오는지 안오는지라도 알려구 이렇게 했는데...
: 역시나 아무런 반응도 보이지 않네요.
:
: 질문 1) WndProc이라는게 저렇게 메인에 하나만 넣는것이 맞나요? 아니면 그 메세지를 발생시키는 모든 폼에 넣어줘야 하나요?
:
: 질문 2) 메세지를 발생시킨다고 해야하나? 그건 WndProc을 쓸때도 PostMessage를 사용해야 하나요?
:         if(ret == ST_COMPLETE){
:             PostMessage(gForm[rp]->Handle, WM_MYMESSAGE, rp, gId[rp]);
:         } else {
:             PostMessage(gForm[rp]->Handle, WM_MYMESSAGE, rp, (-1) * gId[rp]);
:             rp = tp;    //エラーが発生した場合、以降のメッセージを破棄(継続中エラーの場合が心配)
:         }
:
: 현재 포스트메세지를 써준 부분이 이곳인데요... 이건 변화없이 사용해줘야 하나요?
: 아니라면 저부분은 어떻게 해야하나요? 일단 WM_MYMESSAGE라는 놈이 발생은 되어야 잡오던 어쩌든 할것 같은데 도~~~~~통 몰겠네요
:
: 질문 3) RegisterWindowMessage가 중복되는 선언을 막기위해 사용되는건가요?
: --------------------------------------------------------------------------------------
: #define WM_USR_MSG "Test"
:
: int MSG1 = RegisterWindowMessage(WM_USR_MSG);
: int MSG2 = RegisterWindowMessage(WM_USR_MSG);
:
: 위와 같이 사용하였을경우 성공했으면  xC000 through 0xFFFF 값을 리턴하고 실패했을경우 0을 리턴합니다.
: --------------------------------------------------------------------------------------
: 밑에 검색해서 본 설명에 보면
: 이렇게 나와있는데요 이렇게 쓴 메세지를 위에 제가 쓴 WndProc에서처럼 case문에 WM_USR_MSG를 쓰면
: 에러가 나네요. 무엇이 잘못된건가요?

+ -

관련 글 리스트
40783 WndProc에 대해서 다시 질문드립니다. 공윤경 1969 2005/06/28
40786     Re:WndProc에 대해서 다시 질문드립니다. 강준구 1234 2005/06/28
40788         Re:Re:WndProc에 대해서 다시 질문드립니다. 공윤경 1128 2005/06/28
40789             Re:Re:Re:WndProc에 대해서 다시 질문드립니다. 강준구 1593 2005/06/28
40810                 Re:Re:Re:Re:감사드립니당 [냉무] 공윤경 1004 2005/06/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.