Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16

Создание своего заголовка окна

08.09.2014, 15:25. Показов 4396. Ответов 37
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать свой бордюр c кнопками (закрыть,свернуть)?
Покажите пару примеров,а то ничего не найти!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.09.2014, 15:25
Ответы с готовыми решениями:

Не берётся текст из заголовка окна
Уважаемые программисты подскажите по такому вопросу. Я хочу сделать чтобы заголовок формы считывался и заносился в поле Edit при...

Изменение заголовка чужого окна
Добрый день Уважаемые товарищи программисты! Подскажите по такому вопросу зная хендл окна и заголовок окна можно какнибудь изменить...

Возможно ли изменить цвет заголовка окна?
Есть проект, интерфейс - окошко... Самая верхняя полоска, справа которой виндовский крестик закрытия окна, имеет синий цвет с градиентом......

37
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
08.09.2014, 15:38
Это рамка окна что-ли? Что за "Бордюр"?
1
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
08.09.2014, 18:09
Или Вы хотите переопределить свойство BorderIcons формы? Именно там указывается наличие кнопок "Закрыть", "Свернуть".
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
08.09.2014, 20:15  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Или Вы хотите переопределить свойство BorderIcons формы? Именно там указывается наличие кнопок "Закрыть", "Свернуть".
Да,я хочу переопределить свойство BorderIcons!
Изображения
 
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
08.09.2014, 20:17  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Что за "Бордюр"?
На картинку смотрите

Добавлено через 1 минуту
Дело в то что кнопку "свернуть и развернуть в окно" там не убрать (в дизайнере RAD Studio) можно только отключить,я ее вообще хочу удалить
Ведь как то делают свои бордюры
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
08.09.2014, 21:20
Цитата Сообщение от Chelenteve Посмотреть сообщение
Ведь как то делают свои бордюры
Как вариант: выставить свойство BorderStyle формы в bsNone и нарисовать свой "бордюр", задав нужным кнопкам соответствующие обработчики событий, типа такого
C++
1
2
3
4
5
6
7
8
9
10
11
//Кнопка "Закрыть"
void __fastcall TForm6::SpeedButton1Click(TObject *Sender)
{
  Application->Terminate();
}
//---------------------------------------------------------------------------
//Кнопка "Свернуть"
void __fastcall TForm6::SpeedButton2Click(TObject *Sender)
{
  Application->Minimize();
}
А вообще, скорее всего, есть какой-нибудь хитрый ход, который гуру могут подсказать...
Миниатюры
Создание своего заголовка окна  
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
08.09.2014, 22:03  [ТС]
И как его нарисовать?
Такой вариант подойтет
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
08.09.2014, 22:14
Цитата Сообщение от Chelenteve Посмотреть сообщение
На картинку смотрите
Посмотрел, прослезился. Теперь вы смотрите:



Любой стиль VCL (VCL Style, если что, то, что в новых RAD Studio находится в Project Options->Application->Appearance) делает этот трюк: просто выключаем кнопку минимизации или максимизации, и (несмотря на присутствие в дизайнере) она исчезает из заголовка окна запущенного приложения. Ну, а отключение обеих этих кнопок убирает их и в дизайнере формы...
2
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
08.09.2014, 22:22
Цитата Сообщение от UI Посмотреть сообщение
Любой стиль VCL делает этот трюк
Во, блин... UI, спасибо, буду знать...
А все-таки, можно сие сотворить не используя стили? Чисто академический интерес...
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.09.2014, 09:51
Цитата Сообщение от D1973 Посмотреть сообщение
А все-таки, можно сие сотворить не используя стили?
На самом деле вопрос действительно интересный. Такое можно сотворить используя WinApi, но это жуткие костыли. Но можно. На сколько я помню Lelik-pahan когда-то касался этого вопроса.
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
09.09.2014, 11:26  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
На самом деле вопрос действительно интересный. Такое можно сотворить используя WinApi, но это жуткие костыли. Но можно. На сколько я помню Lelik-pahan когда-то касался этого вопроса.
Хочу убрать "свернуть в окно" и за место его кнопка "Опции"
VCL-таких возможностей не дает!
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
09.09.2014, 11:38
Chelenteve, тогда, чтобы голову сильно не греть, сделать, как я предложил: оформить это все самому.
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
09.09.2014, 11:39  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
тогда, чтобы голову сильно не греть, сделать, как я предложил: оформить это все самому.
Как рисовать,я не умею (IDE RAD Studio) ?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.09.2014, 12:40
Цитата Сообщение от Chelenteve Посмотреть сообщение
я не умею (IDE RAD Studio) ?
Да, вы не умеете.
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
09.09.2014, 16:23  [ТС]
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Да, вы не умеете.
Да не умею! Вот и спрашиваю как на рисовать?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33376 / 21500 / 8236
Регистрация: 22.10.2011
Сообщений: 36,896
Записей в блоге: 11
09.09.2014, 16:43
Читать, как в Windows рисуются элементы на неклиентской области окна, и рисовать. За тебя это делать никому на фиг не сдалось. Тем более с таким отношением...

Пришел, как будто тут рабы, а ты - хозяин, и "быстро мне нарисовали, вот вам картинка, с барского плеча, работайте!" Так вот это не проходит. Надо - рисуй. Что конкретно не получится - приходи и спрашивай: "Вот код. Он должен делать вот так, а делает вот так. Почему?"

А чтобы было понятно, в какой омут ты лезешь - вот тебе пример: Setting up a custom title bar (сейчас, разумеется, выяснится, что и английским ты тоже не владеешь, и тебе надо это перевести, но этого тоже не будет. Это твоя задача и решать ее - тебе...)
1
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
09.09.2014, 17:47  [ТС]
мне не надо delphi
0
Заблокирован
09.09.2014, 18:57
Читать, как в Windows рисуются элементы на неклиентской области окна
Вот уж что тут нафиг не надо, еще и платформозависимо - при включенном Aero один код, без Aero другой... Вот это реальные костыли.

Просто:
1) убираете рамку окна (с помощью BorderStyle это делается, кажется)
2) из Image делаете свою рамку, кнопки тоже из них можно. С помощью Anchor (или Anchors, как их там) привязываете Image к нужным краям окна, чтоб рамка при растягивании тоже растягивалась
3) остается только реализовать логику: перетаскивание окна, растягивание окна, закрыть (самое простое) и свернуть.
Тут уже WinAPI SendMessage() в помощь.
Хотя я в свое время растягивание и перетаскивание делал просто меняя Left, Top, Width, Height в MouseMove при нажатой левой клавише мыши.
0
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
09.09.2014, 19:06
Цитата Сообщение от Chelenteve Посмотреть сообщение
Как рисовать,я не умею
По сути "рисовать" ничего не надо, все делается стандартными компонентами. Есть обыкновенная форма, свойство BorderStyle которой выставлено в bsNone. Дальше заливаешь фон формы каким-либо цветом (чтобы граница отличалась от основного фона), помещаешь на форму метку, которая будет отображать заголовок формы и несколько кнопок TSpeedButton в правом верхнем углу формы с соответствующим свойством Caption и обработчиками событий типа таких, как я привел в посте #6. Далее помещаешь на форму панель (или GroupBox, это уже на твое усмотрение) на которой размещаешь все остальные контролы своего приложения, изменяешь размеры панели так, чтобы было похоже на стандатрное окно с заголовком и границами. Это примитив, так, что первое в голову пришло, но если тебе не надо какой-то особый функционал - это, я думаю, подойдет.
0
0 / 0 / 0
Регистрация: 08.09.2014
Сообщений: 16
09.09.2014, 19:17  [ТС]
Работает только вот нельзя окно перетаскивать
Как быть ?
Вложения
Тип файла: rar test.rar (7.61 Мб, 15 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.09.2014, 19:17
Помогаю со студенческими работами здесь

Изменить текст заголовка окна программы
вопрос такой: как сделать, чтобы при изменении этого параметра в программе менялся заголовок проги в винде..а то если просто...

Создание своего окна
Здравствуйте!Год назад я начал интересоваться Qt. Взявшись за интересную тему для диплома "Измерение ДН управляя с компьютера через...

Поиск заголовка окна
Здравствуйте! Задача такова, есть функция "FindWindowA" она ищет заголовок окна по целому имени, но мне надо что-бы она искала только по...

Обновление заголовка окна
Для решения одной задачи требуется выводить количество кликов мышью в заголовке окна. Получается, изменяется только текст заголовка окна. А...

Изменение шрифта заголовка окна
Необходимо изменить шрифт заголовка окна void CTransDlg::OnButton() { // TODO: Add your control notification handler code here ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru