안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당자 임펠리테리입니다.
TCanvas 클래스는 윈도우의 DC를 감싸고 있는 클래스입니다. 당연히 지워지는 것을
막기 위해서는 API에서 DC에 대해 처리하는 것과 같은 방법을 써야 합니다. 바로
OnPaint 이벤트 핸들러에서 그려줘야죠.
void __fastcall TForm1::FormPaint(TObject *Sender)
{
Canvas->Pen->Color = clAqua;
Canvas->MoveTo(100, 100);
Canvas->LineTo(200, 200);
}
이렇게 말이죠.. 그럼 가려졌던 Canvas를 포함하는 객체 (폼이나 페인트박스나 뭐든)
가 다시 그려질 필요가 있을때마다 해당 핸들러 함수가 실행되겠죠.
그리고, Circle 함수는 없습니다. 이건 원래 DC에 대한 페인팅에 관련된 API중에
원을 그리는 함수가 없기 때문이죠. 하지만, 비슷한 걸로 Ellipse() 함수가 있구요,
이건 타원을 그리는 함수입니다. 이 타원함수는 인자로서 타원이 그려질 직 사각형의
네 모서리 좌표를 받습니다. 당연히 직사각형 영역이 정사각형이면 원을 그리겠죠.
이 외에도 빌더 헬프에서 TCanvas를 찾으신후, Method를 찾아보시면 Canvas에서 사용
가능한 다양한 페인트 함수들을 보실 수 있습니다. 참고하시기 바랍니다.
그럼, 도움되시길 바라구요, 이만...
독립문에서 임펠리테리였습니다.
(cbuilder, skyhi18)
|