|
안녕하세요.
컴포넌트를 한번 만들어보려고 하다가.. 막히는점이 있어서 이렇게 질문을 올립니다.
TControl을 상속받아서 TMWControl이라는 컴포넌트를 만들고 있는데요..
이벤트 핸들링에서 계속 막힙니다.
OnClick 은 TControl에 이미 있기때문에 바로
__published:
__property OnClick;
이렇게만 해도.. 생성된 컴포넌트에 OnClick 이벤트가 추가가 되고, 동작도 원활히 됩니다.
그런데, TControl에는 OnKeyDown이 없더군요. 그래서 한번 추가해 보려고 또 도움말을 뒤적이다가..
TControl을 상속받은 TWinControl에는 OnKeyDown이 있는것을 발견했습니다.
'TWinControl을 뒤져보면 되겠구나..' 싶은 마음에 controls.hpp 파일을 봤더니.. 양이 장난이 아니네요..
개념도 제대로 잡히지 않은 상태라서 조언을 좀 구할까 합니다.
우선 제가 코딩한 부분은 다음과 같습니다.
class PACKAGE TMWControl : public TControl
{
private:
TKeyEvent FOnKeyDown;
MESSAGE void __fastcall WMKeyDown(Messages::TWMKey &Message);
protected:
public:
__fastcall TMWControl(TComponent* Owner);
__published:
__property OnClick;
__property TKeyEvent OnKeyDown = {read=FOnKeyDown, write=FOnKeyDown};
};
이렇게 하니.. 빌드가 되고, OnClick 이벤트도 정상적으로 발생하지만..
KeyDown이벤트는 발생하질 않습니다.
도움말을 보고 잡은 개념으론 이것이 한계인지라.. 막막하네요.
어떻게 해야하는지.. 도움을 좀 주시면 감사하겠습니다.
|