아래 시빌리언님도 좋은 답변을 해주셨지만... ^^;;
API에서 관련 루틴을 보셨다는데, 자동 리사이즈 관련으로 지원하는 것은 메모가 아니라 리치에디트입니다.
리치에디트로 바꾸신다고 간주하고 답변을 써보지요.
말씀하신 API는 아마도 EN_REQUESTRESIZE 메시지일 것인데, 사실 이 메시지를 쓸 필요도 없습니다.
VCL의 리치에디트 자체에 이 메시지가 처리되는 이벤트가 있기 때문에 이 이벤트를 쓰는 것이 더 편합니다.
(직접 메시지를 처리하려면 리치에디트에서 메시지를 받아야 하므로 상속받아 컴포넌트를 만들든지 아니면
윈도우프로시저를 가로채는 방법밖에 없으므로 더 복잡해지기만 하지요)
EN_REQUESTRESIZE 메시지를 래핑한 이벤트는 OnResizeRequest 이벤트입니다.
이 이벤트는 내용을 모두 표시하기 위해 필요한 리치에디트의 크기가 변경될 때마다 발생하는데, 필요한
크기가 TRect 타입으로 넘어오므로 편리합니다. 이 TRect 타입 인자를 그냥 리치에디트의 BoundsRect에
넣어버리면 원하시는대로 동작합니다.
그러니까 요약하자면 OnResizeRequest 이벤트의 핸들러에 다음과 같이 한줄만 코딩하면 됩니다.
RichEdit1.BoundsRect := Rect;
그럼...
손동섭 님이 쓰신 글 :
: TMemo에 문자를 입력하면 입력되는 라인만큼
:
: TMemo의 높이를 라인에 맞게끔 늘려주고 싶습니다.
:
: 이전에 어디에서 API호출하여서 처리하는 것을 보았는데
:
: 찾을 수가 없네요??
:
: 고수님들의 조언부탁합니다.
|