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
[74843] Re:Re: VCL 때문에 일어나는 문제
양승현.갈매기 [kalmaeki] 3081 읽음    2018-03-28 16:39
빌더(TWx) 님이 쓰신 글 :
: 양승현.갈매기 님이 쓰신 글 :
: :
: :
: : Properties에
: : BackgroundColor
: : BarColor
: : 이 두가지는 왜 변경해도 적용이 안되는걸까요?
: :
: :
: : SendMessage(ProgressBar1->Handle, PBM_SETBARCOLOR, 0, (LPARAM)(COLORREF)clRed);
: :
: : ProgressBar1->Perform( PBM_SETBARCOLOR, 0, clRed);
: :
: : 검색해보니 두가지 방법이 있어서
: : 적용해보니 두가지 방법이 다 아무 반응이 없습니다.
: :
: : XE로 넘어오면서 뭔가 바뀐걸까요?
: :
: : 혹시 아시는 고수분 계시면 도움 주시면 감사하겠습니다.
: :
: :
:
:
: 답변:
:
:
: 위와 같은 문제는 VCL 라이브러리가 OS가 제공하는 Theme 기능을 고려해서 구현되어 있지 않기 때문 입니다.
:
: radio button, groupbox, checkbox 및 ProgressBar를 포함해서 배경칼러 폰트컬러 등이 원하는 대로 동작하지 않는 이유는
: XP 고전 classic Theme 이 아닌 Modern Theme 이 사용될 경우, OS 가 사용자들에게 고유한 Look & feel을 제공하기 위해서
: 콘트롤의 색깔 폰트색상 등을 변경할 수 있도록 하는 관련 메세지를... 콘트롤를 서브클래싱 한 오너에 라우팅하지 않기 때문인데.
:
: 프로젝트 옵션에서 Theme 기능을 사용하지 않도록 Manifest 옵션을 설정하든가 (RAD 10.2 경우에는 'Enable Runtime Themes' 끄기)
: 해당 콘트롤 개별적으로 Windows Theme API를 이용해서 Modern Theme 이 적용되지 않고, 고전 XP classic Theme이 적용
: 되도록 해줘야 합니다.
:
: Modern Theme 이 사용 되는 경우라도...
: Theme API를 이용해서 해당 콘트롤의 칼러, 폰트색상을 커스텀 하게 바꿀 수 있도록 관련 메세지들을 서브클래싱한 오너에
: 전달해 주도록 VCL 라이브러리가 구현되어 있으면 가능 한데...
:
: VCL에는 그런 코드가 구현되어 있지 않습니다. 엠바 애들이 게을러 터진 건지. 고전 XP classic Theme 만 기준으로 해서 만들어진
: 기존의 구조를 지금 까지 바꾸지 않고 그대로 사용하고 있지요.
:
:
답변 감사드립니다 ^-^*

+ -

관련 글 리스트
74822 progressbar color 관련 질문입니다. 양승현.갈매기 3087 2018/03/21
74831     Re: VCL 때문에 일어나는 문제 빌더(TWx) 3192 2018/03/25
74843         Re:Re: VCL 때문에 일어나는 문제 양승현.갈매기 3081 2018/03/28
74838         Re:Re: VCL 때문에 일어나는 문제 질문 3057 2018/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.