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
[14209] Re:메시지 잘다루시는분 저좀 도와주세요 WM_PAINT를 쓰는데 잘안됩니다.
로렌조 [posix] 830 읽음    2002-01-08 09:16
안녕하세요...로렌조 임다...^^

제가 생각하기에는 Panel보다는 Shape를 상속 받아서 Shape에 Rectangle을 그려줘야 할 것 같네요...
Panel이 Shape의 Parent로서 동작하기 때문에 당연히 Panel을 먼저 그리고 그 위에 Shape를 그리는
걸로 보이네요...
참고하세요...

해당화 님이 쓰신 글 :
: 씨빌더 또는 파워포인트처럼 여러 객체들이 멀티섹렉트 되는 것을 구현해야 합니다.
:
: 구현은 되었는데 각 점들을 그려주는 부분이 문제입니다.
:
: 아래는 디자인 환경입니다.
:
: 흰색 바탕 : TPanel
: 큰 정사각형 : 선택될 객체들 TShape로 되었습니다.
: 작은 회색점 : Rectangle로 그려줬습니다.
: 작은검은색점 : MultiSelect된 객체들은 전체적으로 사이즈를 조절하기위해서 TShape로 만들었습니다.
:
: 선택은 잘됩니다. 그래서 그려주고 나서 탐색기나 폼싸이즈의 변경으로 판넬이 가려지게 되면
:
: Rectangle로 그린 작은 회색점들이 지워지게 됩니다.폼사이즈의 변경이나 커다란 탐색기 등으로 가려지는것은
: 폼의 FormPaint이벤트에서 다시 그려주는것으로 해결이 되었습니다.
:
: 하지만 정작 문제는 흰색바탕의 Panel보다 작은 폼이나 탐색기, 익스플로러 같은것이 그위에서만 움직이면
:
: FormPaint가 일어 나지 않기때문에 다시 그려지지 않는것입니다.
: 그래서 Panel의 WM_PAINT를 잡아서 다시 그려주게 해주었습니다. 하지만 잘그려지지가 않더군요
: 여기서 발생한 문제는 제가 WM_PAINT를 가로채서 거기서 작은 회색점을 그려주면 제가 그려주고 난후에
: 큰정사각형인 TShape가 그려지는 것입니다.
:
: 쉽게 말해서 제가 작은 점을 그려주고 난후에 그위에 TShape가 그려지는것입니다...
:
: TCustomPanel을 상속받아서 Paint함수를 오버라이드해보았지만 똑같더군요
:
: 문제를 제가 참 어렵게 설명드린듯 합니다.
:
: TPanel에 만들어진 TShape를 먼저 그려주고 그위에 나중에 제가 Rectangle를 그려줄 방법을 찾고 있습니다.
:
: 좋은 방법이 없을지요
:
:

+ -

관련 글 리스트
14203 메시지 잘다루시는분 저좀 도와주세요 WM_PAINT를 쓰는데 잘안됩니다. 해당화 767 2002/01/07
14209     Re:메시지 잘다루시는분 저좀 도와주세요 WM_PAINT를 쓰는데 잘안됩니다. 로렌조 830 2002/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.