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
[5466] Re:[질문] 버튼 및 컨트롤들의 배경색 변경...
박지훈.임프 [cbuilder] 3835 읽음    2001-02-15 05:45
쌈개 님이 쓰신 글 :
: 흑.. API 시절에는 다 변경할 수 있어서 좋았건만..
:
:
:
: API에 보며는
: WM_CTLCOLOR 시리즈 메세지가 있자나여..
: 버튼, 스크롤바 등등등 리턴할때 브러쉬 넘겨주면 그 색으로 칠하자나여...
:
: 근데 그게 빌더에선 안되요..
: 첨엔 메세지맵에서 될 줄 알구서리.. -_-
:
: 예를 들어 버튼이라면
:
: BEGIN_MESSAGE_MAP
:      MESSAGE_HANDLER(WM_CTLCOLORBTN, TWMCtlColorBtn, WMCtlColorBtn)
: END_MESSAGE_MAP(TForm)
:
: 이렇게 메세지 잡구
:      SetTextColor(Message.ChildDC, RGB(255, 0, 0));
:      hbr = CreateSolidBrush(RGB(255, 0, 0));
:      Message.Result = (int)hbr;
: 이렇게 브러쉬를 리턴해 줘도 감감 무소식이네요...
:
:
: 이래 저래 한참을 서핑해본 결과 걔네들 버튼은 그게 안된다는투의 말을 봤네요...
: 과연 이게 안되는 건가요?
:
:
: 버튼의 색상... 페이지 컨트롤의 탭 제목 표시줄 색깔..
: 콤보박스의 화살표 색깔 등등 모두 바꿔야 되는데... 허허...
: 윈도우 테마 같은 거 구현할 길 없을까요?
:
: 꾸벅꾸벅.. 읽어 주셔서 감사합니다..
: 답신 기다릴께요


임펠리테리입니다.

이미 존재하는 클래스에 대해 메시지맵을 만들 방법이 없죠? 보여주신 메시지맵도, 폼에다 메시지맵을 건 것이지 버튼에 작용하는 것이 아닙니다. 메시지맵은 클래스를 정의할 수 있을 때만 사용가능합니다.

이미 존재하는 클래스에 대해서라면, GetWindowLong()과 SetWindowLong() 함수를 이용하여 윈도우프로시저를 바꿔치워야 합니다. (일종의 후킹입니다.) API에 익숙하신 것 같으시니 헬프를 보시면 별 어려움이 없으시겠네요.

그럼 이만...

+ -

관련 글 리스트
5442 [질문] 버튼 및 컨트롤들의 배경색 변경... 쌈개 3375 2001/02/14
5466     Re:[질문] 버튼 및 컨트롤들의 배경색 변경... 박지훈.임프 3835 2001/02/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.