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
[57296] Re:성호씨~ 가로지르는것이 맛기는 하나.,,,,이건 대각선 유유 가로로는 좌표가 안되네요 ㅠ
장성호 [nasilso] 841 읽음    2009-06-17 19:13
제가 말씀드린것은 기본원리를 얘기한것입니다.
그냥 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();
: : : }
: : : 

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

+ -

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