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
[67551] Re:MyWndProc; <-- 이거 왜사용하는건지 궁금합니다
장성호 [nasilso] 1327 읽음    2012-06-18 16:15
모든 Window에는

Window로 가는 메세지를 처리하기 위한 Window-Procedure(윈도우 프로시져)가  있습니다.

1. 윈도우로 가는 메세지를 중간에서 가로채서 무엇인가를 처리하는것을
    Hooking(후킹)이라고 하구요


2. 기본 윈도우프로시켜져 함수를 override하거나 , 다른 함수로 바꿔치기 해서
    처리하는것을  sub-classing(서브클래싱)이라고 합니다.


링크에 예제같은 경우는..
메세지 맵(WM_LBUTTONDOWN) 으로 처리해도 되구..
hooking , sub-classing 어느것으로도 가능합니다만..

확장이 편리한 sub-classing으로 처리한것뿐입니다.



sub-classing에 대해 조금더 설명드리면..

  1. Original-WindowProc를 따로 저장해두고
  2. WindowProc를 내가 만든것으로 대체 ..
  3. 내가만든 WindowProc에서 원하는 작업을 하고..
      나머지 기본적인 처리는 저장해둔 Original-WindowProc를 호출해줘서 처리하는것입니다.

VCL(Delphi 또는 CBuilder)에서 sub-classing하는 방법은
여러가지가 있는데요

위 방법은 여러가지 sub-classing방법중에 한가지일 뿐입니다.


그럼..


똑똑 님이 쓰신 글 :
:
: TWndMethod OrgProc;
: void __fastcall   TForm1::FormCreate(TObject *Sender)
: {
:    InitRichEditURLDetection(RichEdit1);
:    OrgProc=this->WindowProc;             // <--
:    this->WindowProc=MyWndProc;      // <--
: }
: 

:
: RichEdit에 하이퍼링크 달기
: http://together.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=771
:
: 이부분소스코드에서 MyWndProc; 이걸로 WindowProc를 설정해주는데 이걸 왜하는건지 알수있을까요?
:
: 책기초부분에 나와있을꺼같은데 책이없어서 질문드립니다

+ -

관련 글 리스트
67550 MyWndProc; <-- 이거 왜사용하는건지 궁금합니다 똑똑 1085 2012/06/18
67551     Re:MyWndProc; <-- 이거 왜사용하는건지 궁금합니다 장성호 1327 2012/06/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.