라디오그룹 버튼등 투명화 하기

2012. 12. 5. 18:05언어/C++ Builder

출처 : http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=63122

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

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)해서 직접 그리기처리를 해줘야 합니다.