![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как добавить свою кнопку в заголовке окна? [D7, WinXP]
FunkyByte © (2005-04-25 21:39:00)Доброго времени суток, уважаемые мастера. Как можно добавить кнопку в заголовке окна (помимо стандартных "Закрыть", "Свернуть", "Развернуть"/"Свернуть в окно") и разместить на ней простую пиктограмму (например, квадратик)? Заранее спасибо.
mgcr (2005-04-26 10:39:00) [1]GuAV © (25.04.05 23:12) [3]
> При смене заголовка WM_NCPAINT не посылается ?
А ты проверь. Посылается WM_SETTEXT. Дело в том, что Windows довольно хитро работает с неклиентской областью окна, и перерисовка ее происходит не только в момент обработки сообщения WM_NCPAINT, но и в момент обработки других сообщений (например, WM_SYSCOMMAND, WM_NCMOUSExxxx)
Германн (2005-04-26 01:53:00) [2]2 GuAV © (25.04.05 23:12) [3]
Не знаю, что ответит ЮЗ, да и ответит ли вообще. Но подобное наблюдал ранее, когда увлекался "красивностями" типа WindowsBlind или чем-то подобным.
Вышеупомянутые позволяли добавлять и новые кнопки и новые окна в заголовок (например окно с выводом даты/времени). Но заголовок основного окна их затирал.
Eraser (2005-04-25 23:16:00) [3]FunkyByte ©
В составе JEDI VCL есть неплохой компонент + пример работы.
GuAV (2005-04-25 23:12:00) [4]Юрий Зотов © (25.04.05 22:42) [2]
> Правда, ни одного неглючного компонента на эту тему я
> пока не видел (кроме своего, естественно... гы...).
> Глюк состоит в том, что изменение текста Caption не
> отлавливается и в результате кнопка затирается.
При смене заголовка WM_NCPAINT не посылается ?
Юрий Зотов (2005-04-25 22:42:00) [5]> FunkyByte © (25.04.05 21:39)
Несистемные кнопки в неклиентской области надо рисовать самому (GetWindowDC - и вперед). Задачка не особо сложная, но довольно хлопотная (придется ловить где-то около десятка сообщений). На Torry есть готовые компоненты (HelpButton, например), там можно посмотреть, как это делается.
Правда, ни одного неглючного компонента на эту тему я пока не видел (кроме своего, естественно... гы...). Глюк состоит в том, что изменение текста Caption не отлавливается и в результате кнопка затирается.
Piter (2005-04-25 22:15:00) [6]как-то очень хитро...
Хорошо такая кнопка реализована в eMule. Даже при изменении стиля Windows, она получается как надо...