Neit 님이 쓰신 글 :
: 임의의 text 파일을 열어서 richedit 에 올린후, 색상,폰트등을 입혀야 할일이 있는데요.
:
: 한라인에 글자수가 6000 개정도 되는 내용을 add 하게 되면
:
: 2줄로 표시가 되는데요.
:
: edit/StringGrid 같은데는 6000개 글자가 한라인에 표시가 가능한데요..
:
: RichEdit 컨트롤에서는 안됩니다.
:
: 고수님들 조언 부탁 드립니다.
답변:
Rich Edit에서 한 라인에 출력 가능한 글자 수는 Rich Edit 콘트롤 내부에서 사용하는 Device Context에 의해서
제한을 받게 됩니다. 폰트의 크기에 따라서 출력 가능한 글자의 수도 바뀐다는 거죠. 폰트 사이즈를 4 정도로
작게해서 해보세요.
디폴트 폰트 사이즈인 8 정도에서도 한 라인에 6천개 문자 이상을 표시하고자 한다면...
아래와 같은 식으로... Rich Edit 콘트롤 내부에서 사용하는 Device Context의 Width를 바꿔 줘야 합니다.
...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HDC dc = GetDC(RichEdit1->Handle);
int dcWidth = 800000;
SendMessage(RichEdit1->Handle, EM_SETTARGETDEVICE, (WPARAM)dc, dcWidth);
String s;
RichEdit1->Lines->Clear();
// 6,000 개의 문자생성
for(int i = 0; i < 600; i++)
{
s = s + "1234567890";
}
RichEdit1->Lines->Add(s);
}
...
|