제가 말씀드린것은 기본원리를 얘기한것입니다.
그냥 Copy+Paste하면 전혀 건들이지 않다도 되도록
답변해드린것이 아니라는 뜻입니다.
(사실 이정도도 엄청 상세히 답변해드렸다고 생각하는데..)
답변드린 구조에서
폼의 OnPaint이벤트에서 원하는것을 Draw하면 된다는 뜻입니다.
님께서 정확히 어떤 그림을 그리시기 원하는지 질문으로는 알수가 없네요...
좀더 해보시고 안되시면 다시 상세히 질문 올려주세요
그럼..
유유 님이 쓰신 글 :
: 감사합니다 님이 쓰신 글 :
: : 장성호 님이 쓰신 글 :
: : : 그냥 Form의 OnPaint이벤트에서
: : :
: : :
: : : void __fastcall TForm1::FormPaint(TObject *Sender)
: : : {
: : : Canvas->MoveTo(0,0);
: : : Canvas->LineTo(ClientWidth,ClientHeight);
: : : }
: : :
: : :
: : : 하면 되는데요..
: : :
: : : 한가지 중요하게 고려해야 사항이 있습니다.
: : : 그것은 Form의 Size가 변경될때죠
: : :
: : : 만약 대각선으로.. 선을 하나그렸을때..
: : : Form의 Size가 변경되면
: : : 선의 시작과 끝의 좌표가 바뀔수 있죠
: : :
: : : 이경우에 선을 다시 그려줘야 겠죠
: : :
: : :
: : : void __fastcall TForm1::FormPaint(TObject *Sender)
: : : {
: : : Canvas->MoveTo(0,0);
: : : Canvas->LineTo(ClientWidth,ClientHeight);
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::FormResize(TObject *Sender)
: : : {
: : : FormPaint(NULL);
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : :
: : : 그런데 위와같이 해도 문제가 하나 있습니다.
: : : Form의 Size가 변경되었을때는 선의 좌표가 바뀌었으므로..
: : : 이전에 그런 선이 그대로 남아있을수 있습니다.
: : :
: : : 그러므로 이전에 화면은 모두 clear하구..
: : : 다시 그려야 겠죠..
: : :
: : :
: : : void __fastcall TForm1::FormPaint(TObject *Sender)
: : : {
: : : //이렇게 client영역을 전부 지우고
: : : Canvas->Pen->Style=psClear;
: : : Canvas->FillRect(ClientRect);
: : : Canvas->Pen->Style=psSolid;
: : :
: : : //다시그리면 됩니다.
: : : Canvas->MoveTo(0,0);
: : : Canvas->LineTo(ClientWidth,ClientHeight);
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::FormResize(TObject *Sender)
: : : {
: : : FormPaint(NULL);
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : :
: : : 또다른 방법은?
: : : 다음과 같이 OnPaint에서는 그냥 그리기만 하구..
: : : Form이 Resize되었을때는 Invalidate 를 이용해서 전체를 다시 그리도록 하면 됩니다.
: : :
: : : void __fastcall TForm1::FormPaint(TObject *Sender)
: : : {
: : : Canvas->MoveTo(0,0);
: : : Canvas->LineTo(ClientWidth,ClientHeight);
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::FormResize(TObject *Sender)
: : : {
: : : Invalidate();
: : : }
: : :
: : :
: : : 그럼..
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : 하이욤 님이 쓰신 글 :
: : : : 폼 한가운데 쭉 가로질러서 직선을 하나 찍 긋고 싶은데...
: : : :
: : : : 어찌 해야 할찌...
: : : :
: : : : 아시는분 알려주세요
: : : :
: : : : 그냥 쭉~~~~~~선 한줄입니다 ㅎ