Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Как добавить свою кнопку в заголовке окна?   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.048 c
1-1117113569
slaga
2005-05-26 17:19
2005.06.14
Как работать с XML


14-1117123767
Магнитоныч
2005-05-26 20:09
2005.06.14
:)) Для хорошего настроения посетите


14-1116855042
blackman
2005-05-23 17:30
2005.06.14
Ничего не понимаю. Просветите...


10-1093435544
Dima
2004-08-25 16:05
2005.06.14
Количество подключений через SocketServer


1-1117600097
ORMADA
2005-06-01 08:28
2005.06.14
Drag n Drop + Ctrl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский