Изменить цвет строки заголовка приложения - PullRequest
3 голосов
/ 07 января 2010

С Delphi 7 пытается изменить цвет строки заголовка программного обеспечения из темы окна. Я видел код, который позволяет вам изменять ВСЕ строки заголовка всех программ, но я просто хочу изменить свою программу.

Кто-нибудь видел / делал что-нибудь подобное? Не против платить за компонент, если это необходимо.

Ответы [ 3 ]

4 голосов
/ 07 января 2010

Я считаю, что Windows отправляет приложению сообщение WM_NCPAINT , когда оно должно закрасить рамку окна, включая строку заголовка. Поведение по умолчанию - возврат к обработчику Windows по умолчанию, который рисует рамку по умолчанию. Вы можете заменить это или перекрасить раздел строки заголовка сразу после.

Это выглядит как хороший пример: http://delphi.about.com/od/adptips2006/qt/draw_captionbar.htm

2 голосов
/ 07 января 2010

Ответ Стейна не полностью завершен, так как заголовок и граница окна также будут перерисованы, когда он (де) активирован.Так что в дополнение к WM_NCPAINT вам также потребуется обработать WM_NCACTIVATE.К сожалению, это не может быть просто заменено, поскольку в обработчике сообщений по умолчанию есть другой код (кроме кода рисования), который необходимо выполнить.Но вызов обработчика по умолчанию, в свою очередь, приведет к тому, что заголовок по умолчанию и граница будут нарисованы первыми, а затем вам нужно будет нарисовать их нужным цветом, что приведет к мерцанию.настроить область рисования, с которой вызывается обработчик сообщений по умолчанию.См. «Создание заголовка заголовка в XP с темами» для примера использования вызовов API Windows, которые должны легко переводиться в Delphi.Обратите внимание, что это относится только к тексту в строке заголовка, но принцип применим.

1 голос
/ 07 января 2010

Вы можете взглянуть на библиотеку скинов. ExpressSkin от DevExpress - хороший вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...