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
[19924] Re:Re:Re:[질문:hooking 관련] WM_NCPAINT 메시지를 후킹하려고 합니다..
유영인.Chris [cuperido] 1470 읽음    2002-07-08 15:58
[헤더 파일]

//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
private:    // User declarations
        void __fastcall MessageProcess(TMessage &Msg);
        BEGIN_MESSAGE_MAP
          MESSAGE_HANDLER(WM_NCPAINT, TMessage, MessageProcess);
        END_MESSAGE_MAP(TForm);

public:        // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif


[소스 파일]
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::MessageProcess(TMessage &msg)
{

switch(msg.Msg) {
   case WM_NCPAINT : {
     Form1->Caption = TimeToStr(Time());
     break;
   }

   // 이 곳에 Message Map에서 설정한 여러가지 메세지를 받아 개별처리 할 수 있습니다.
}


TForm::Dispatch(&msg);

}


만약, WM_NCPAINT의 이전 기능을 죽이실때는, Dispatch를 빼주시면 됩니다.



DAK 님이 쓰신 글 :
: 안녕하세요... 답글 감사드립니다...
: 죄송하지만 메세지 맵으로 구현하는 예제를 부탁드립니다...
: 좋은 소스를 보고 싶네요.. ^^
: 다시한번 감사드립니다.. 좋은 하루 되세요...
:
: 유영인.Chris 님이 쓰신 글 :
: : WH_GETMESSAGE를 직접 후킹하시는 것보다, 메세지 맵을 만드셔서 하시는 것이 좋으실 것 같습니다. 키보드나 마우스 같은 경우에는 후킹이 꼭 필요하지만, 일반 어플리케이션에서는 WM_NCPAINT에서 후킹이 꼭 필요할 것 같지는 않네요. 후킹을 사용하시면 프로그램을 짤 때, 제약을 해야 하는 부분이 많고 생각을 해야하는 부분이 많아, 메세지 맵으로 처리가 가능하다면 이 방법을 사용하시는 것을 추천해 드리고 싶습니다.
: :
: : 메세지 맵을 만드셔서 하시는 예제를 원하신다면 리플을 달아주세요. 집에 있는줄 알고 찾아보니깐 회사에 있나보네요.
: :
: :
:

+ -

관련 글 리스트
19862 [질문:hooking 관련] WM_NCPAINT 메시지를 후킹하려고 합니다.. DAK 1748 2002/07/05
19895     Re:[질문:hooking 관련] WM_NCPAINT 메시지를 후킹하려고 합니다.. 유영인.Chris 1762 2002/07/07
19906         Re:Re:[질문:hooking 관련] WM_NCPAINT 메시지를 후킹하려고 합니다.. DAK 1233 2002/07/07
19924             Re:Re:Re:[질문:hooking 관련] WM_NCPAINT 메시지를 후킹하려고 합니다.. 유영인.Chris 1470 2002/07/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.