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
[1961] [답변] THREAD74/ TWMCommand에 관한 질문/프포
박지훈.임프 [cbuilder] 3365 읽음    1999-09-15 12:01
안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.

TWMCommand는 메시지 구조체들중 하나로서, WM_COMMAND 메시지를 처리하기위해

정의된 것입니다. 메시지 구조체란...

윈도우즈 api의 모든 메시지는 인자로서 WParam과 LParam을 가집니다. 그런데,

이 두개의 인자는 윈도우즈의 메시지 종류마다 각각 역할이 다를 뿐 아니라, 어떤

경우에는 하나의 인자(WParam혹은 LParam)가 상위 워드와 하위워드로 나누어서

의미를 가지기도 하고, 심지어는 둘중의 하나, 혹은 둘 다 의미가 없을수도 있습니다.

그러므로 여러가지 메시지에 대해 프로그래머는 각각 이 두개의 인자를 따로 해석해서

사용해야만 합니다. 이런 불편을 조금이라도 줄이기 위해, 빌더에서는 메시지구조체

라는 구조체를 사용합니다. 사용자 정의 메시지 핸들러를 구성하게 될때, 해당

메시지를 받아올 구조체를 지정해주게 되는데, 이때 해당 메시지에 특화된 구조체를

선택해서 지정해주면 프로그래머가 WParam과 LParam을 직접 해석하는 수고를

조금이나마 덜 수 있게 되죠.

질문하신 TWMCommand를 예로 들면, WParam의 상위워드에 코드값이, 하위워드에

아이디, 그리고 LParam에는 메시지가 발생한 컨트롤의 핸들이 넘어옵니다.

이와같은 내용이 TWMCommand에 해석된 채로 넘어오는 겁니다. 만약 범용 메시지

구조체를 사용하게 되면 당연히 WParam과 LParam을 직접 해석해줘야 합니다.

메시지 구조체에 대해 공부하시려면 메시지맵에 대한 이해가 우선되어야 합니다.

먼저 메시지맵을 공부해보시기 바랍니다. 빌더 관련책으로 조금이라도 성의가

있는 책이라면 반드시 메시지맵에 대해 설명되어 있을겁니다.

그럼 참고하시길...




임펠리테리 박지훈이었습니다.

(http://myhome.thrunet.com/~cbuilder, cbuilder@thrunet.com)




+ -

관련 글 리스트
1961 [답변] THREAD74/ TWMCommand에 관한 질문/프포 박지훈.임프 3365 1999/09/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.