말씀해주신 방법으로 해결했습니다.
감사합니다. ~~
그리고 CM_TEXTCHANGED를 언급한 것은 .. TCustomPanel에서 BevelWidth와 관련된 이런 종류의 컴포넌트 메시지를 제공하지 않느냐는 것이었습니다.
장성호 님이 쓰신 글 :
: BevelWidth 는 TCustomPanel에 있는 protected 의 property 이구요
: 실제는 TCustomPanel의 private 멤버인 FBevelWidth 이죠
:
: TCustomPanel에서 이벤트 핸들러 같은것을 제공하지 않으니
: 직접 만들수 밖에 없을듯 하네요
:
: 방법은 간단합니다.
: TCustomPanel에 있는 property BevelWidth 를 재 정의 하시면 됩니다.
:
:
: class TMyPanel : public TPanel//CustomPanel
: {
: private:
: void _fastcall SetMyBevelWidth(int value)
: {
: //필요한 코드1
: TCustomPanel::BevelWidth=value;
: //필요한 코드2
:
: }
: int _fastcall GetMyBevelWidth()
: {
: return TCustomPanel::BevelWidth;
: }
: public:
: __fastcall TMyPanel(Classes::TComponent* AOwner)
: : TPanel(AOwner)
: {
: //
: }
: __property Controls::TBevelWidth BevelWidth = {read=GetMyBevelWidth, write=SetMyBevelWidth, default=1};
:
: };
:
:
: 위와같이 해 놓으면
:
: TMyPanel의 BevelWidth를 수정하게 되면 SetMyBevelWidth 가 호출됩니다.
:
: 그러므로 원하시는 기능은 SetMyBevelWidth 메소드에서 하면 될것입니다.
:
:
: 두번째 질문인지 모르겠는데...
: TEXTCHANGED 에 대해서 무엇을 물어보는지 이해가 잘 안됩니다.
:
: 질문이 잘 이해가 되지 않지만 혹시 Panel 의 Caption을 변경하는 메세지를 잡고자 하는것이라면
: WM_SETTEXT 메세지를 잡으시면 됩니다.
:
: 그럼..
:
:
:
: skjoon 님이 쓰신 글 :
: : TCustomPanel을 상속받아 컴포넌트를 만들고 있습니다.
: :
: : Panel 내부에 그리드 형태의 그림을 그리는데요.
: : AutoSize라는 속성을 만들어서 그리드의 크기에 맞춰서 자동으로 Panel의 크기도 바꿔주려고 합니다.
: : 그러다보니 BevelWidth 가 변경되는 시점에서 변경된 BevelWidth만큼 Panel 크기를 조정해줘야 할 필요가 있습니다.
: :
: : 혹시 컴포넌트 메시지(CM_TEXTCHANGED 등과 같은...)에 관련된 메시지가 있나요?
: : 제가 찾아봤을 땐 없는 것 같습니다만...
: :
: : Panel의 BevelWidth 값이 변경되는 시점에서 이를 확인할 수 있는 방법을 아시는 분 계시면 도움 부탁드리겠습니다.
: :
: : 수고하세요.