Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизКак добавить свою кнопку в заголовке окна? Найти похожие ветки
← →
FunkyByte © (2005-04-25 21:39) [0]Доброго времени суток, уважаемые мастера. Как можно добавить кнопку в заголовке окна (помимо стандартных "Закрыть", "Свернуть", "Развернуть"/"Свернуть в окно") и разместить на ней простую пиктограмму (например, квадратик)? Заранее спасибо.
← →
Piter © (2005-04-25 22:15) [1]как-то очень хитро...
Хорошо такая кнопка реализована в eMule. Даже при изменении стиля Windows, она получается как надо...
← →
Юрий Зотов © (2005-04-25 22:42) [2]> FunkyByte © (25.04.05 21:39)
Несистемные кнопки в неклиентской области надо рисовать самому (GetWindowDC - и вперед). Задачка не особо сложная, но довольно хлопотная (придется ловить где-то около десятка сообщений). На Torry есть готовые компоненты (HelpButton, например), там можно посмотреть, как это делается.
Правда, ни одного неглючного компонента на эту тему я пока не видел (кроме своего, естественно... гы...). Глюк состоит в том, что изменение текста Caption не отлавливается и в результате кнопка затирается.
← →
GuAV © (2005-04-25 23:12) [3]Юрий Зотов © (25.04.05 22:42) [2]
> Правда, ни одного неглючного компонента на эту тему я
> пока не видел (кроме своего, естественно... гы...).
> Глюк состоит в том, что изменение текста Caption не
> отлавливается и в результате кнопка затирается.
При смене заголовка WM_NCPAINT не посылается ?
← →
Eraser © (2005-04-25 23:16) [4]FunkyByte ©
В составе JEDI VCL есть неплохой компонент + пример работы.
← →
Германн © (2005-04-26 01:53) [5]2 GuAV © (25.04.05 23:12) [3]
Не знаю, что ответит ЮЗ, да и ответит ли вообще. Но подобное наблюдал ранее, когда увлекался "красивностями" типа WindowsBlind или чем-то подобным.
Вышеупомянутые позволяли добавлять и новые кнопки и новые окна в заголовок (например окно с выводом даты/времени). Но заголовок основного окна их затирал.
← →
mgcr © (2005-04-26 10:39) [6]GuAV © (25.04.05 23:12) [3]
> При смене заголовка WM_NCPAINT не посылается ?
А ты проверь. Посылается WM_SETTEXT. Дело в том, что Windows довольно хитро работает с неклиентской областью окна, и перерисовка ее происходит не только в момент обработки сообщения WM_NCPAINT, но и в момент обработки других сообщений (например, WM_SYSCOMMAND, WM_NCMOUSExxxx)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.073 c