|
TCanvas->Handle이 DC입니다.
이 DC를 이용해서 API로 처리하시면 됩니다.
사용하실 API는 DrawText입니다.
옵션 중에 DT_CALCRECT를 사용하시면 실제 표시되는데 필요한 RECT의 정보를 얻어올 수 있고..
자세한건 도움말을 참조하세요..
c인 님이 쓰신 글 :
: RichEdit에 있는 문자를 출력하려고 하는데요.
: 물론 리치에디트에 Print()란 함수가 있지만 다른 선을 긋고 난다음 에디트에 있는 내용을 출력해야 합니다.
: 그런데 TextOut함수는 개행문자(\r\n)을 인식하지 않고 특수문자로 찍어 버리더군요..라인변경이 없습니다. 그래서 함수를 만들어서 \r\n일때 StringList에 Add한다음 TextOut(x,y,StringList->Strings[i])을 여러개 찍을려구여~!
: 그런데 문제는 머리가 나빠서 \r\n을 잘 못짜르겠군요..ㅠㅠ
: 문자열 짜르는 좋은 함수나 클래스 없을까요?? 아님 소스를 좀 봐주시던가요..(넘뻔뻔한거 같아 죄송)
:
: void __fastcall GetMsg(TStringList *StringList, TRichEdit *RichEdit)
: {
: int j = 0;
: String Text = RichEdit->Text;
:
: for(int i = 1; ; i++){
: String a=Text.SubString(i, 1);
: String b=Text.SubString(i, 2);
:
: if(Text.SubString(i, 2) == NULL)break;
: // if(RichEdit->Lines->Count == j)break;
:
: if(Text.SubString(i, 2) == "\r\n"){
: ShowMessage(Text.SubString(1, i - 1));
: StringList->Add(Text.SubString(1, i - 1));
: String c = Text.SubString(i + 2, Text.Length());
: Text = Text.SubString(i + 2, Text.Length());
: j++;
: i = 0;
: }
: }
: }
: void __fastcall TForm1::PrintMsg(String Subject, String MsgID, String From, String To, TRichEdit *RichEdit)
: {
: TStringList *PrintBuf = new TStringList;
: TPrinter *p = Printer();
:
: p->Title = "RainbowB"; //Document Title
:
: p->BeginDoc(); //출력 시작
:
: for(int i = 0; i < PrintBuf->Count ; i++){
: p->Canvas->TextOut(XO * 3, (YO * (((i + 1) * 2) + 1)) - 5, PrintBuf->Strings[i]);
: }
: p->EndDoc();
: }
|