장성호님이 말씀해주신부분에 답은 다 나와 있는데..
고민해보지 않고 질문을 올리신듯하네요.
수평이면 y축 수직으면 x축좌표를 계산해서 넣어보세요..
유유 님이 쓰신 글 :
: 감사합니다 님이 쓰신 글 :
: : 장성호 님이 쓰신 글 :
: : : 그냥 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();
: : : }
: : :
: : :
: : : 그럼..
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : 하이욤 님이 쓰신 글 :
: : : : 폼 한가운데 쭉 가로질러서 직선을 하나 찍 긋고 싶은데...
: : : :
: : : : 어찌 해야 할찌...
: : : :
: : : : 아시는분 알려주세요
: : : :
: : : : 그냥 쭉~~~~~~선 한줄입니다 ㅎ