C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[57295] 성호씨~ 가로지르는것이 맛기는 하나.,,,,이건 대각선 유유 가로로는 좌표가 안되네요 ㅠ
유유 [] 875 읽음    2009-06-17 18:24
감사합니다 님이 쓰신 글 :
: 장성호 님이 쓰신 글 :
: : 그냥 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();
: : }
: : 

: :
: : 그럼..
: :
: :
: :
: :
: :
: :
: :
: : 하이욤 님이 쓰신 글 :
: : : 폼 한가운데 쭉 가로질러서 직선을 하나 찍 긋고 싶은데...
: : :
: : : 어찌 해야 할찌...
: : :
: : : 아시는분 알려주세요
: : :
: : : 그냥 쭉~~~~~~선 한줄입니다 ㅎ

+ -

관련 글 리스트
57289 간단할듯하면서 안되내요... 하이욤 1060 2009/06/17
57293     Re:간단할듯하면서 안되내요... 장성호 1114 2009/06/17
57294         아직 못하고 있엇는데 바로 도전 해보겟습니다 ^^ 감사합니다 855 2009/06/17
57295             성호씨~ 가로지르는것이 맛기는 하나.,,,,이건 대각선 유유 가로로는 좌표가 안되네요 ㅠ 유유 875 2009/06/17
57302                 Re:지나가다가.. zeFa 1181 2009/06/18
57296                 Re:성호씨~ 가로지르는것이 맛기는 하나.,,,,이건 대각선 유유 가로로는 좌표가 안되네요 ㅠ 장성호 841 2009/06/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.