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
[476] [답변] HORONG/ 마우스의 버튼이 눌렸는지 알려면?../프포
온니서방 [ ] 5157 읽음    1998-07-31 05:01

화면에 탐색기와 넷텀 두개의 윈도우가 떠있다고
가정을 해봅시다.. (흐흐.. 현재 제 윈도우가 이 상황이네요..)

탐색기 윈도우 위에서 오른쪽 버튼을 눌렀을때와
넷텀 위에서 마우스 오른쪽 버튼을 눌렀을때의 동작이 다르죠..

해당 윈도우에서 발생되는 마우스 이벤트는 해당 윈도우의
메시지 처리루틴이 처리를 하게 됩니다..

헌데 이 모든 마우스 버튼 클릭 메시지를 언제나 잡아 처리를
하고 싶다면.. (바탕화면도 하나의 윈도우죠..)
OS가 발생된 메시지를 해당 윈도우에게 분배하여 전달해주기
전에 가로채어 처리를 해야 하므로
메시지 처리 루프에서 먼저 빼올 수 있도록
후킹(hooking)을 해야 합니다..

도스 시절 S/W 인터럽트 처리와 비슷하다고 보시면 됩니다..
이 시절에도 해당 인터럽트 벡터를 조작하여 발생되는 인터럽트의
원래 처리루틴 말고 자신이 작성한 루틴을 대신 실행시킬 수 있었죠..

마찬가지로 윈도우즈의 후킹체인을 조작하여
자신의 루틴이 항상 마우스 클릭 메시지를 먼저 받아 처리할 수 있도록
해야 합니다..

후킹에 관련된 내용은 고난이도 이며 (잘못 건드리면 윈95가 맛이
가버리겠죠.. 사실 저도 자세히는 모릅니다..)
이곳에 설명하기엔 양도 많으므로 생략하고..
고급 윈도우즈 프로그래밍 관련 서적이나 인터넷에서 정보를 찾아
보시면 될 것 같습니다..

기람..

     미친병아리 서비였네용.. 삐약~ !!




+ -

관련 글 리스트
471 [질문] 마우스의 버튼이 눌렸는지 알려면?../프포 horong 4952 1998/07/28
476     [답변] HORONG/ 마우스의 버튼이 눌렸는지 알려면?../프포 온니서방 5157 1998/07/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.