|
1. 컴포넌트를 상속받아 특정 이벤트를 처리한 후(오버라이딩 개념이 맞나요?),
상속받은 컴포넌트의 원래 메세지 처리 함수를 호출하고 안하고를 조절하는 방법이 다음과 같이 하는게 맞는지 궁금합니다.
TCustomPanel을 상속받은 컴포넌트에서 property에 OnKeyDown 이벤트를 추가하여 구현했을 때
void __fastcall 자식클래스::KeyDown(Word &Key, Classes::TShiftState Shift) {
// 여기에 원하는 처리
::TWinControl::KeyDown(Key, Shift); // 이 라인을 코딩하면 베이스 클래스의 KeyDown 메시지 헨들러 호출, 없애면 호출 안함?
}
위의 베이스 클래스의
위와 같이 TCustomPanel을 상속받아 KeyDown 이벤트를 가로챈 후,
원하는 처리를 해주고 다시 베이스 클래스의 KeyDown 이벤트 헨들러를 호출했는데도 불구하고
원래의 동작이 나타나지 않아서 이렇게 질문 올립니다.
2. A라는 패널위에 B라는 패널을 올렸습니다.
이때 A에서 B 영역을 포함한 라인을 그릴려고 합니다. 그냥 A의 canvas에 그리면, B 영역에 가려서 나오지 않는군요..
이렇게 자신이 가지는 컴포넌트 위를 포함해서 그리고 싶을 때 어떻게 해야 하는지 알고 싶습니다.
답변 미리 감사드립니다.
|