안녕하세요. 천리안 프로그래머포럼 C++Builder 담당 임펠리테리입니다.
첫번째 질문은... 줄을 첫번째 줄로 이동한다고 하셨는데, 커서를 가장 위나 가장
아래로 이동한다는 뜻으로 이해하겠습니다. 간단한 방법은, SelStart 속성을 이용하
는 것이죠. 여기에 0을 집어넣으면 가장 앞으로 갑니다. 반대로, 현재의 텍스트 내용
전체의 크기보다 더 ㅕ?값을 집어넣으면 가장 뒤로 가죠.
조금 나은 방법이라면.. SendMessage() 함수로 WM_KEYDOWN을 보내면서 컨트롤+홈
혹은 컨트롤+엔드 키를 보내줘도 되겠죠.
두번째 질문..리치에디트에서 지원하는 포맷 중에 반전 형식은 없습니다. 밑줄이나
이탤릭, 삭제선 정도가 전부죠.
세번째 질문... 역시 몇가지 방법이 있겠습니다만.. 금방 생각나는대로 다음과 같이
해봤습니다.
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
SendMessage(RichEdit1->Handle, WM_KEYDOWN, VK_HOME, 1);
RichEdit1->SelLength = RichEdit1->Lines->Strings[RichEdit1->CaretPos.y].Length();
}
해보니 별 이상없이 잘 동작하더군요.
그럼 도움되시길...
임펠리테리 박지훈이었습니다.
(cbuilder, cbuilder@thrunet.com)
|