Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как добавить свою кнопку в заголовке окна? [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, она получается как надо...


Наверх

Титульная страница Поиск, карта сайта Написать письмо