문제

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는 좋은 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top