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
[61272] Re:그림판 기본 도구를 추가하고 싶습니다 .
locke [syiware] 1228 읽음    2010-05-31 09:45
도형은 님이 그려주셔야지요. 뭐 시작점과 끝점을 연속으로 클릭하면 그걸 기준으로 원이나 사격형을 그리게 코딩을 하시든지
아니면 처음 클릭한(첫 시작점) 상태로 드래그해서 mouse-up이 일어나면 그 점을 끝점으로 하는 도형을 그려주시면 됩니다.
내부 비트맵을 하나 만드셔서 거기다가 해당 영역만큼 도형을 그린뒤 원본 화면에 XOR로 붙여주시든지..
XOR로 두번 덮어씌우면 원래 배경으로 돌아옵니다.
canvas에 있는 그리기 함수 응용해서 연구해보세요.
-locke

김준석 님이 쓰신 글 :
: 소스코드는 이거구요
:
: //---------------------------------------------------------------------------
: 
: #include 
: #pragma hdrstop
: 
: #include "Unit1.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma link "CGRID"
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
:         : TForm(Owner)
: {
: }
: //---------------------------------------------------------------------------
: 
: void __fastcall TForm1::FormCreate(TObject *Sender)
: {
:         Image1->Picture->Bitmap->Height =  305;
:         Image1->Picture->Bitmap->Width = 320;
:         ListBox1->ItemIndex = 0;
: }
: //---------------------------------------------------------------------------
: 
: void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
:       int X, int Y)
: {
:         if(Shift.Contains(ssLeft))
:         Image1->Picture->Bitmap->Canvas->LineTo(X,Y);        
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Image1MouseDown(TObject *Sender,
:       TMouseButton Button, TShiftState Shift, int X, int Y)
: {
:         Image1->Picture->Bitmap->Canvas->Pen->Color = CColorGrid1->ForegroundColor;
:         Image1->Picture->Bitmap->Canvas->Pen->Width = ListBox1->ItemIndex+1;
:         Image1->Picture->Bitmap->Canvas->MoveTo(X,Y);
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:         if (SaveDialog1->Execute())
: 	Image1->Picture->Bitmap->SaveToFile(SaveDialog1->FileName);
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
:         if (OpenDialog1->Execute())
: 	Image1->Picture->Bitmap->LoadFromFile(OpenDialog1->FileName);
: }
: //---------------------------------------------------------------------------
: 
: 

: 그림판을 만들었습니다 .
: 기본적으로 펜만 사용가능한데요
: 어떻게하면 도형그릴수 있나요 ㅠㅠ

+ -

관련 글 리스트
61264 그림판 기본 도구를 추가하고 싶습니다 . 김준석 903 2010/05/31
61272     Re:그림판 기본 도구를 추가하고 싶습니다 . locke 1228 2010/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.