Главная страница
    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.092 c
14-1117134416
Narikmen
2005-05-26 23:06
2005.06.14
image1


4-1114191285
Killer-App
2005-04-22 21:34
2005.06.14
WindowsXP-Выключение


1-1117392026
Dezmond
2005-05-29 22:40
2005.06.14
Высота Task Bar


1-1117532553
seg
2005-05-31 13:42
2005.06.14
Как определить координаты мыши


14-1116945369
DiamondShark
2005-05-24 18:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский