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
[14203] 메시지 잘다루시는분 저좀 도와주세요 WM_PAINT를 쓰는데 잘안됩니다.
해당화 [kerc] 767 읽음    2002-01-07 22:59
씨빌더 또는 파워포인트처럼 여러 객체들이 멀티섹렉트 되는 것을 구현해야 합니다.

구현은 되었는데 각 점들을 그려주는 부분이 문제입니다.

아래는 디자인 환경입니다.

흰색 바탕 : 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를 쓰는데 잘안됩니다. 로렌조 831 2002/01/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.