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
[20304] Re:Re:Re: 좀 더 질문 드립니다.^^
유영인.Chris [cuperido] 1008 읽음    2002-07-23 13:37
이미지 두개를 사용하시는 것은 좋지 않은 방법입니다. 만약 투명으로 그린다고 하셔도 그것을 처리하는 데는 엄청나게 느립니다.

아래는 비트맵위에서 마우스로 원하는 곳으로 선을 긋는 예제입니다. 만약, 두개를 꼭 사용하셔야 한다면, 도스용 게임을 만들때와 비슷하게 가상으로 Image를 하나 만드시고 그곳에 작업을 하신다음에 옮겨 오시는 것도 하나의 방법입니다. 하지만 추천드리지는 않습니다. (바로 그리기 작업을 하는 것보다 느립니다. 비트맵이 클때는 더욱 그렇습니다)

그리고, 만약 속도에 더욱 문제가 있다면, PaintBox를 이용해 보시는 것도 좋습니다. Image보다 훨씬 빠르지만, 자동으로 RePaint가 되지 않는다는 단점이 있습니다.

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

TForm1   *Form1;
tagPOINT START_PIXEL;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

DoubleBuffered      = true;

Image1->Transparent = true;
Image1->Picture->LoadFromFile("C:\\Work\\지도.BMP");

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{

START_PIXEL.x = X;
START_PIXEL.y = Y;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{

Image1->Canvas->MoveTo(START_PIXEL.x, START_PIXEL.y);
Image1->Canvas->LineTo(X, Y);

}
//---------------------------------------------------------------------------


장재욱 님이 쓰신 글 :
: 지금은 BMP 이미지를 로드 시켰습니다.
:
: 그리고, 마우스의 down, up, move 이벤트를 통해서
:
: lineto와 moveto를 이용해서 선을 그렸습니다.
:
: DoubleBuffered 를 true로 해서 했는데도,
:
: 큰 차이는 모르겠구요...
:
: 저도 일단은 VCL을 좀 보려고 하는데...
:
: 다른 방안이 있습니까?
:
: 그리고, 답변 주신 것만도 정말 감사 드립니다^^

+ -

관련 글 리스트
20255 이미지에 관한 질문입니다^^ 장재욱 842 2002/07/22
20276     Re:이미지에 관한 질문입니다^^ 유영인.Chris 1097 2002/07/22
20296         Re:Re: 좀 더 질문 드립니다.^^ 장재욱 824 2002/07/23
20304             Re:Re:Re: 좀 더 질문 드립니다.^^ 유영인.Chris 1008 2002/07/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.