응용 프로그램 제목 표시 줄의 색상을 변경하십시오
문제
Delphi 7이 Window 테마에서 소프트웨어의 제목 표시 줄의 색상을 변경하려고합니다. 모든 프로그램의 모든 제목 표시 줄을 변경할 수있는 코드를 보았지만 프로그램을 변경하고 싶습니다.
이런 일을 본 사람이 있습니까? 필요한 경우 구성 요소에 대한 비용을 지불하지 마십시오.
해결책
나는 Windows가 wm_ncpaint 제목 표시 줄을 포함하여 창 프레임을 페인트해야 할 때 응용 프로그램에 메시지를 보내십시오. 기본 동작은 기본 프레임을 그리는 기본 Windows 핸들러로 돌아가는 것입니다. 이것을 교체하거나 직후 제목 바 섹션을 다시 정리할 수 있습니다.
이것은 좋은 예처럼 보입니다. http://delphi.about.com/od/adptips2006/qt/draw_captionbar.htm
다른 팁
창의 캡션과 테두리가 활성화 될 때 (DE-) 창의 캡션과 경계가 다시 그려지기 때문에 Stijn의 답변은 완전히 완료되지 않았습니다. 그래서 그 외에 WM_NCPAINT
당신은 또한 처리해야합니다 WM_NCACTIVATE
. 불행히도 기본 메시지 핸들러에 실행 해야하는 다른 코드가 있기 때문에 이것은 단순히 교체 할 수 없습니다. 그러나 기본 핸들러를 호출하면 차례로 기본 캡션과 테두리가 먼저 그려지고 의도 한 색상으로 그려져 깜박임이 발생합니다.
이를 해결하는 한 가지 방법은 기본 메시지 핸들러가 호출되는 도면 영역을 조정하는 것입니다. 보다 "테마가있는 XP의 타이틀 바 그리기" 예를 들어 Windows API 호출을 사용하여 Delphi로 쉽게 번역해야합니다. 이것은 캡션 바의 텍스트 만 다루지 만 원리는 적용됩니다.
스키닝 라이브러리를 살펴볼 수 있습니다. 고속 스킨 Devexpress는 좋은 것입니다.