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
[51593] Re:TEdit 위에 TShape 올리기
장성호 [nasilso] 1240 읽음    2007-12-12 16:14
Edit는  TForm이나 TPanel 같이 다른 컨트롤을 올려놓을수 있는 컨테이너 컨트롤이 아닙니다.
그래서 올려놓을수 없는것입니다.

컴포넌트를 선택했을때 컴포넌트위에 박스를 그리고자 한다면?
Handle이 있는 window컨트롤은 DC를 얻어서 draw하시면 됩니다.


1. TForm같은 경우  원하는 그림을 Form->Canvas에 그리면 됩니다.

2. 그런데 TPanel 이나 TButton , TEdit 등 Canvas 속성이 없는 Control은 어떻게 해야할까요?
    모든 윈도우 Control은 화면을 자신의 DC에 그려줍니다.
    그러므로 Panel에 원하는 그림을 그리고자 한다면 Panel의 DC를 얻어오면 되죠
    보통 DC는 GetDC라는 api로 얻을수 있습니다.
 
    원하는 그림은 HDC dc=GetDC(Edit1->Handle);
    RECT rc;
    ...
    DrawFocusRect(Can->Handle,&rc); 

3. 2번에서 api를 이용해서 그림을 그리기 불편하면 VCL의 TCanvas를 이용하는 방법이 있습니다.
   
   TCanvas *can=new TCanvas;
    can->Handle = GetDC(Edit1->Handle);
    can->Draw...
     ......     
    delete can;  

    위와같이 하면 TCanvas에 있는 GDI그래픽 함수들을 쉽게 쓸수 있죠


결론적으로 TShape를 기존 Control위에 올리려고 하지 마시구요
직접 Control의 DC에 그림을 그려서 처리하도록 하십시요

참조
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=38049
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=49461

그럼..



해리 님이 쓰신 글 :
: 안녕하세요?
:
: C++Builder 의 form editor 와 비슷한 것을 만들고 있습니다.
: Component 를 선택했을 때, 그 Component 위로 박스를 그리고 싶은데
: TShape 을 사용하는 경우에 이것이 항상 TEdit 의 아래로 가버립니다.
:
: TEdit 의 위에 그림을 또는 선을 그리는 방법이 없을까요?
:
: 감사합니다.
: 해리.

+ -

관련 글 리스트
51587 TEdit 위에 TShape 올리기 해리 1086 2007/12/12
51593     Re:TEdit 위에 TShape 올리기 장성호 1240 2007/12/12
51597         감사합니다. 그런데 제가 원하는 것은... 해리 1104 2007/12/12
51599             Re:감사합니다. 그런데 제가 원하는 것은... 장성호 1308 2007/12/12
51602                 Re:Re:감사합니다. 그런데 제가 원하는 것은... 해리 1269 2007/12/13
51604                     Re:Re:Re:감사합니다. 그런데 제가 원하는 것은... 장성호 2509 2007/12/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.