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
[41582] Re:TPanel에 그림 그리기 소스좀 봐주세요...
유영인 Cuperido [cuperido] 1346 읽음    2005-08-22 10:45
TCanvasPanel(Panel1).Canvas.St­retchDraw 의 변형은,
> dynamic_cast<TCanvasPanel *>(Panel1)->Canvas->St­retchDraw

이렇게 변경하시면 됩니다. Windows 기반 C언어에서는 이런식으로 변경할 수 있습니다.
또한, dynamic_cast<TCanvasPanel *>(Panel1) 여기까지 실행후
NULL 이 나오면, 변형이 불가능한 객체 형태입니다.

보통은 델파이에서도 위와같은 캐스팅은 As 로 많이 사용하고,
형 변환 비교는 Is 로 많이 하는데요,

C++ Builder 에서는 실질적인 변환과 비교 모두 dynamic_cast 하나로
사용하게 됩니다


cuperido


박선영 님이 쓰신 글 :
: 다음은 델파이로 되어 있는 TPanel에 배경그림을 그리수 있다는 소스를 복사해 온것입니다.
: 이걸을 c++빌더로 변환 할려고 하는데..
: "TCanvasPanel(Panel1).Canvas.St­retchDraw" 여기서
: TCanvasPanel(Panel1) 이 캐스트 하는 부분을 c++로는 어떻게 표현해야 하나요?
: 제가 c++을 시작한지 얼마 되지 않아 너무 헤갈리고 어려워 도움 부탁드립니다.
: 감사합니다.
:
: var
:         OldWndProc: TWndMethod = nil;
:
:     type
:         TCanvasPanel = class(TPanel)
:         public
:             property Canvas;
:         end;
:
:     constructor TForm1.Create(AOwner: TComponent);
:     begin
:         inherited Create(AOwner);
:         OldWndProc := Panel1.WindowProc;
:         Panel1.WindowProc := PanelWndProc;
:     end;
:
:
:     procedure TForm1.PanelWndProc(var Message: TMessage);
:     begin
:         if Message.Msg = WM_ERASEBKGND then
:         begin
:             // draw your image here...
:             TCanvasPanel(Panel1).Canvas.St­retchDraw(Panel1.ClientRect,
: YourImage);
:             Message.Result := 1;
:         end else
:             OldWndProc(Message);
:     end;

+ -

관련 글 리스트
41576 TPanel에 그림 그리기 소스좀 봐주세요... 박선영 978 2005/08/21
41582     Re:TPanel에 그림 그리기 소스좀 봐주세요... 유영인 Cuperido 1346 2005/08/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.