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
[63122] Re:라디오 그룹, 라디오 버튼 투명화 질문좀 드리겠습니다.
장성호 [nasilso] 2335 읽음    2010-12-01 11:37
음...

TLabel , TShape , TImage등은 GraphicControl입니다.
이런 놈들은 Window Handle이 없는 놈들이죠.

그래서 자신의 모습을 스스로 나타내지 못하고 Parnet-Control의 dc에다가 그려줍니다.
이때 투명하게 또는 반투명하게도 쉽게 가능하것입니다.

하지만
TRadioButton을 비롯한 다른 대부분의 Control들은 WinControl입니다.
Window-Handle이 있죠
자신의 모습을 자신의 window-dc에다가 그려야죠
이때 Parent-dc에다가 그리는것이 아니므로 투명하게 그리는것이 쉽지 않는것입니다.

---------------------------------------------------------------------------
@ 쉬운 방법이 한가지 있기는 한데..

TXPManifast를 이용하면 쉽게 가능합니다.

exe의 리소스에 XPManifast내용이 들어가있으면..
Application의 모든 Control에  Manifast가 적용됩니다.
그러면 RadioButton이 투명하게 되더군요

하지만 위 방법은 주의해야할것이 있습니다.
최신버젼(Rad2010)에서는 문제가 많이 없어졌지만..

Delphi7 , C++Builder6버젼까지에서는 Manifast를 쓸경우 몇가지 문제가 발생하더군요
Panel 의 Color가 적용이 안된다던지 등..

리소스에 Manifast를  집어넣는것은
TXPManifast라는 Component가 있는데 이놈을 하나 폼위에 올려놓으시면 됩니다.
전체 프로젝트에서 딱 하나만 있으면 됩니다.

@ 어려운 방법은?
   RadioButton의 WM_ERASEBKGND 메세지와 WM_PAINT등의 메세지를
    sub-classing(또는 hooking)해서 직접 그리기처리를  해줘야 합니다.


그럼..


JGY 님이 쓰신 글 :
: 안녕하십니다. 빌더를 시작한지 얼마안되는 초보라 많은 조언좀 부탁드리겠습니다.
:
: 다름이 아니라 폼위에 배경 이미지를 폼 전화면에 올린상태에서
:
: 그위에 라디오 그룹,버튼을 올리면 컴포넌트 여백 흰부분에 의해서 뒤에 이미지가 가려지는 문제가 있습니다.
:
: 라벨은 Transparent 기능으로 뒤에 이미지를 비추게 할수 있던대.. 라디오 구룹이랑 버튼은 이런 기능이 없는지요?
:
: 2틀동안 여기에 시간을 소비하니.. 답답하네요 ㅎㅎ;
:
: 그냥해도 상관은 없지만.. UI쪽을 담당하게 되어서.. 가능하면 이쁘게 꾸미고 싶습니다.
:
: 파일을 첨부하오니 확인해보시고 답변좀 부탁드리겠습니다.

+ -

관련 글 리스트
63118 라디오 그룹, 라디오 버튼 투명화 질문좀 드리겠습니다. JGY 1229 2010/12/01
63122     Re:라디오 그룹, 라디오 버튼 투명화 질문좀 드리겠습니다. 장성호 2335 2010/12/01
63123         친절한 답변 감사드립니다.^^ JGY 985 2010/12/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.