코드 조각

TPanel에는 Canvas가 왜 없을까?

알 수 없는 사용자 2012. 3. 20. 22:41
프로그램 하다보면 
TPanel에 무엇을 그리고 싶은 경우가 있는데요
TPanel에는 Canvas가 안보입니다.


사실 없는것이 아니라 protected로 감쳐줘 있을뿐입니다.



[TPanel에서 Canvas를 쓰려면 ]

다음과 같이 만들어서 쓰시면 됩니다.


//---------------------------------------------------------------------------
// Protected로 감춰져 있는 Canvas를 public으로 변경 
class TOpenPanel: public TPanel
{
public:
__property Canvas;
};
//---------------------------------------------------------------------------
// 실제 사용 예
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TOpenPanel *pan=(TOpenPanel *)Panel1;
pan->Canvas->MoveTo(0,0);
pan->Canvas->LineTo(100,200);
}
//---------------------------------------------------------------------------

이상입니다.