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
[75871] Re:FD2DCanvas 에서 그림을 이동후, Refresh() 를 하면 원점으로 이동 한것처럼 보입니다.
빌더(TWx) [builder] 1186 읽음    2020-05-22 10:05
뽀뽀중 님이 쓰신 글 :
:
: 그림을 그린 폼 크기를 변경 하면, 그림이 찌그러지는 현상이 있어서 FD2DCanvas->Refresh(); 를 사용했습니다.
:
: 그런데, 첨부 파일처럼 그림을 이동후, 폼을 리사이즈 하면 이동한 그림이 원정으로 이동한것처럼 보입니다.
: 이상태에서 다시 이동을 하면, 직전에 이동한 위치에서 이동을 하게 됩니다.
:
: FD2DCanvas->Refresh(); 후 원점으로 이동한 것이 아닌, 마지막 이동한 위치가 유지되도록 보이게 하려면, 어떻게 해야 하나요?




답변:



Refresh 라는 용어 자체에 혹해서 API를 잘못 사용하고 있는 것 같은데...

TDirect2DCanvas::Refresh() 는 DirectX Surface를 repaint 하는 역할을 하는 함수가 아니고...
2D 캔버스 Internal 객체들을 reset 하는 역할 밖에 하지 않아요. 화면 갱신 역할을 하는 함수가 아님.

화면 왼쪽을 드로잉 영역으로... 오른쪽을 Tab 영역으로 쓸거라면...

왼쪽 영역을 TPanel 상속해서 wm_size, wm_paint, wm_mousemove 등의 윈도우 메세지를 오버라이드 해서
행렬식을 이용해서 Zoom, Panning, Scale, Skew 등 Transformation 처리를 해주면 간단한 작업임.






+ -

관련 글 리스트
75868 FD2DCanvas 에서 그림을 이동후, Refresh() 를 하면 원점으로 이동 한것처럼 보입니다. 뽀뽀중 1069 2020/05/20
75871     Re:FD2DCanvas 에서 그림을 이동후, Refresh() 를 하면 원점으로 이동 한것처럼 보입니다. 빌더(TWx) 1186 2020/05/22
75877         Re:Re:FD2DCanvas 에서 그림을 이동후, Refresh() 를 하면 원점으로 이동 한것처럼 보입니다. 뽀뽀중 1064 2020/06/03
75879             Re:Re:Re:FD2DCanvas 에서 그림을 이동후, Refresh() 를 하면 원점으로 이동 한것처럼 보입니다. 빌더(TWx) 1240 2020/06/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.