|
김성철.마법사 님이 쓰신 글 :
: 메세지맵은 윈도우즈의 메세지처리를 TWinControl 클래스가 캡슐화한 메세지처리 메카니즘 중 하나입니다. 따라서 메세지 맵을 사용하기 위해서는 클래스를 만들 때 반드시 윈도우 핸들이 있는 TWinControl 에서부터 파생되어야합니다.
:
: 그리고 END_MESSAGE_MAP( ____ ) 에서 ____ 자리는 선조클래스의 이름이 들어가야하는데요
:
: 그 이유는 END_MESSAGE_MAP() 에서 선조클래스의 Dispatch() 멤버함수를 호출하기 때문이죠.
:
: 따라서 다음과 같이 클래스를 선언해야합니다.
:
: class A : public TWinControl
: {
: private :
: public :
: protected :
: BEGIN_MASSAGE_MAP
: VCL_MESSAGE_HANDLER(UserMessage, TMessage, OnUserMessage);
: END_MASSAGE_MAP(TWinControl)
: };
:
:
: 통인 님이 쓰신 글 :
: : 대략 다음과 같이 구성을 했습니다.
: :
: : Class A
: : {
: : private :
: : public :
: : protected :
: : BEGIN_MASSAGE_MAP
: : VCL_MESSAGE_HANDLER(UserMessage, TMessage, OnUserMessage);
: : END_MASSAGE_MAP(여기를 어떻게 처리해야 하나요.)
: : }
: :
: : 폼에서 작없할때는 TForm을 그냥 넣었었는데요. 폼에서 작업을 안하니 뭘 넣어야 할지 모르겠네요.
: : 꼭 폼에서 해야 할 필요도 없을거 같은데요.
: : Class A : TForm(this) 이렇게 였던가요.
: :
: : 그냥 폼에다 소스를 넣으면 되지만 이 메세지 정의 때문에 폼을 사용하고 싶진 않아서요.
: : ()안에 base라고 도움말에 적혀있던데. 어떻게 해야할 지를 모르겠네요.
: :
: : 지도 부탁드립니다.
: : ^^
: :
|