Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Ресурсы в C++ Builder |
Автор: ZufuS 3.5.2007, 00:30 |
Как создать меню не используя VCL? |
Автор: 586 3.5.2007, 00:43 |
1) CreateMenu 2) В ресурсах: 1) создаёшь res-файл 2) добавляешь в проект 3) редактируешь в редакторе ресурсов и сохраняешь (т.е. добавляешь в ресурсы меню) 4) компилируешь приложение |
Автор: Klin 3.5.2007, 00:50 |
Если нужно создать отдельный RES файл, то используйте программу brcc32, которая находится в папке BIN у билдера. Добавлено через 27 секунд вот так блин, все изменяем ![]() |
Автор: HappyLife 3.5.2007, 09:15 |
Рекомендую Restorator 2005 |
Автор: ama_kid 3.5.2007, 11:44 | ||
ZufuS Когда надоест баловаться предложенными выше игрушками - можешь попробовать создать меню на чистом API:
|
Автор: Klin 3.5.2007, 12:26 |
Он разве умеет создавать res файлы? |
Автор: HappyLife 3.5.2007, 19:33 |
Klin, Он больше ничего и не умеет) на wasm.ru валяется версия с кряком. Пользуюсь регулярно. Нравиться. |
Автор: Klin 3.5.2007, 20:11 |
У самого стоит (только старее), я имел ввиду, что умеет только редактировать. Похоже пора обновить, спасибо за линк ![]() |
Автор: ZufuS 4.5.2007, 05:48 |
Пробовал сделать примеры, которые находил в интернете, но при попытке создать *.res он не создавался. Хотелось бы рабочий пример. |
Автор: Klin 4.5.2007, 14:12 | ||
Создание ресурсов с помощью brcc32 (который находится в папке BIN): 1) Создаем файл с расширением RC (к примеру file.rc) 2) С помощью любого текстового реадктора пишем в нем нужные файлы в следующей форме: Название_ресурса Тип_ресурса Путь_к_файлу пример: MyMenu MENU "menu.txt" 3) Открываем RC файл в brcc32 (или просто кидаем RC файл на иконку brcc32) и получаем RES файл 4) Прописываем в программе:
|
Автор: dumb 4.5.2007, 14:21 |
столкнулся тут недавно... хозяйке на заметку(Builder < 2006): симпотомы: если в ресурс попадает иконка, содержащая более 4х изображений, resource linker'у становится сильно плохо, и процесс сборки приложения обрывается внутренней ошибкой. что делать: "дробить" иконку, либо ставить 2006, где эта проблема пофиксена. |
Автор: dumb 4.5.2007, 16:52 |
по-фи-гу как. ![]() |
Автор: ZufuS 4.5.2007, 18:23 | ||
Klin, файл res сотворился, непонятно только что дальше с ним делать. Я заменил им project1.res. Если я правильно понял, то имя, в данном случае sapmle, это типа константа, которой надо присвоить число.(?) Поэтому я вместо sample написал 1234 и в инициализации объекта оконного класса написал
но меню не появилось. |
Автор: Klin 4.5.2007, 19:20 | ||
Я бы удивился ![]() На самом деле все просто:
Добавлено через 1 минуту и 13 секунд А если нужно что-то изменить или события добавить ;), то используй свойство Menu (this->Menu); |
Автор: ZufuS 5.5.2007, 00:23 |
Появилось ![]() Спасибо. |
Автор: Klin 5.5.2007, 00:28 |
Всегда рад любому выражению признательности ![]() |
Автор: ZufuS 5.5.2007, 14:47 |
Теперь непонятно, как изменять меню в коде программы, например, почему RemoveMenu(LoadMenu(0,"Menu"),100,NULL); не удаляет Soup? |
Автор: Klin 5.5.2007, 15:48 | ||
Если работаем с функциями API, то нужно действовать так:
|
Автор: ZufuS 5.5.2007, 16:42 | ||||
В rc писал примерно
в cpp
Пункт меню не удалился PS что здесь означает ::? без него вроде тоже работает. |
Автор: Klin 5.5.2007, 16:47 | ||
У меня не работает Что за 100? Нужно MF_BYPOSITION.
0 - порядковый номер вашего меню. |
Автор: ZufuS 5.5.2007, 16:51 |
Спасибо |
Автор: cyberstream 4.9.2007, 22:07 | ||
Народ, а как вставить пункт в контекстное меню приложения (вызываемое правым кликом на taskbar-e)? То есть он вставляется, но не работает. Что упустил?
|
Автор: 586 4.9.2007, 22:53 |
8: AppendMenu(hSystemMenu, MF_STRING | MF_BYCOMMAND, SC_UserItem, "&Условие задачи"); |
Автор: cyberstream 5.9.2007, 08:39 | ||||
Это сути дела не меняет. При
|