Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
3-1115358479
Patrick
2005-05-06 09:47
2005.06.14
Delphi 7 и Oracle 8i


4-1114429361
tradakad
2005-04-25 15:42
2005.06.14
ES_PASSWORD ?


1-1117283847
illuha
2005-05-28 16:37
2005.06.14
Память


4-1114245891
dron-s
2005-04-23 12:44
2005.06.14
Куда установлена система


4-1114528271
Виталик
2005-04-26 19:11
2005.06.14
Проблема с запуском программы от лица другого пользователя





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский