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
[49969] Re:DrawLine이라는 함수를 만들려고하는데
장성호 [nasilso] 1378 읽음    2007-07-19 15:33
VCL에 대해 알아가게 되면
이미 잘 만들어진 class 및 utils들이 있는것을 알게될겁니다.

원하시는 그래픽 클래스에 TCanvas라는게 있죠..

각설하고

일단  TPaintBox는 Graphics Control입니다.
Handle이 없습니다.

DC는 PaintBox1->Canvas->Handle이 DC가 됩니다.

아래처럼 쓰시면 됩니다.

//---------------------------------------------------------------------------
void __fastcall DrawLine(HDC dc,int x1,int y1,int x2,int y2)
{
    MoveToEx(dc,x1,y1,NULL);
    LineTo(dc,x2,y2);
}
//-----------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HDC dc=PaintBox1->Canvas->Handle;
    DrawLine(dc,10,10,100,200);
}
//---------------------------------------------------------------------------




그리고 먼저 말했듯이 TCanvas라는 class에서 윈만한 기능은 깔끔하게 처리해줍니다.
아래와 같이 간단히....
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   PaintBox1->Canvas->MoveTo(20,30);
   PaintBox1->Canvas->LineTo(200,300);
}
//---------------------------------------------------------------------------




android 님이 쓰신 글 :
: VC의 PictureBox와는 많이 다른것같아서 많이 헤매는중입니다.
:
: 그래픽 클래스를 만들려고합니다.
: Unit파일을 생성하고
: class MyGrp {
:   public:
:      void DrawLine( ??, int x, int y, int x2, int y2);
: };
:
: 이렇게하고 안에 채워넣으면 되겠죠.
: ?? 부분은 DC를 넣어야겠죠.
:
:
: TPaintBox를 사용할려고하는데
: PaintBox1->Handle이 없어서 값을 넘겨주질 못하고 있습니다.
:
: void __fastcall TForm1::FormPaint(TObject *Sender)
: {
:     HDC hDC;
:     hDC = GetDC(PaintBox1->Handle);         // 이 부분이 안되거든요.
:     myGrp.DrawLine(hDC, 0, 0, 100, 100);
: }
:
: VC라면 그냥 CDC나 HDC를 넘겨주면 되는데 어떻게해야하나요?

+ -

관련 글 리스트
49968 DrawLine이라는 함수를 만들려고하는데 android 1239 2007/07/19
49969     Re:DrawLine이라는 함수를 만들려고하는데 장성호 1378 2007/07/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.