void __fastcall TForm1::FormPaint(TObject *Sender)
{
Graphics::TCanvas *PanCanvas = new Graphics::TCanvas;
PanCanvas->Handle = GetDC(Panel1->Handle);
PanCanvas->MoveTo(0, 0);
PanCanvas->LineTo(100, 100);
ReleaseDC(Panel1->Handle, PanCanvas->Handle);
delete PanCanvas;
}
보통 Panel에 그림을 그릴 때 이런 방법을 사용하라고 하시더군요.
문제점 : 그런데 실행해보면 화면에 바로 안나타나고 폼을 이리저리 끌어보면 나타나네요.
DC를 제대로 못 잡아주는 건지, 아니면 폼의 OnPaint 이벤트에 넣어서 그런건지 모르겠습니다.
문제점 더 : Panel부분만(정확히는 내가 패널위에 그려준 부분만) 다시 그려줬으면 하는데 Panel엔 OnPaint이벤트가 없지않습니까. 어떻게 해야 다시 그리도록 할 수 있겠습니까.
|