![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| LerikCo |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.4.2014 Репутация: нет Всего: нет |
Доброго времени суток!
Что требуется: На диалоговом окне (C++, MFC) CMenuTestDlg есть главное и контекстные меню, созданные в редакторе ресурсов. Необходимо добавить в него иконки и разрисовать элементы в стиле Office2003, т.е. под иконкой фон закрашивать синим, выделенный элемент подсвечивать желто-розовым, обводить рамкой. Многим (разным) пунктам меню должна соответствовать одна и та же иконка. Иконки 32-bit хранятся в ресурсах в виде икон (не тулбар!). Что сделал: В карту обработчика сообщений диалога добавил
Ну, естественно, в MenuTestDlg.h диалога добавил
Что получилось: Функции OnMeasureItem() и OnDrawItem() вызываются, всё нормально. Иконку в OnDrawItem() рисую, проблем нет. Но не могу рисовать по элементу меню в том месте, где выводится текст. Во-первых, lpdis->rcItem определяет прямоугольник под иконой. Получить рект всего элемента не знаю как. Во-вторых, даже задавая рект для всего элемента вручную, вижу только фрагмент отрисовки своего прямоугольника, всё остальное накрывает текст элемента. В третьих, не понимаю, как различать выделенный и невыделенный элемент меню. Помогите для начала банально залить весь прямоугольник невыделенного элемента меню красным. ЗЫ: Что было прочитано: [COLOR=gray]ФАК 74[/COLOR] [COLOR=gray]Как вставить иконки в стандартное меню[/COLOR] [COLOR=gray]иконки в меню[/COLOR] [COLOR=gray]menu[/COLOR] [COLOR=gray]www.codeproject.com/Articles/16529/Simple-Menus-That-Display-Icons-Minimalistic-Appro[/COLOR] [COLOR=gray]www.codeproject.com/Articles/2354/Owner-Drawn-Menu-with-Icons-Titles-and-Shading[/COLOR] [COLOR=gray]www.realcoding.net/articles/glava-12-v-glubine-menyu.html[/COLOR] ЗЗЫ: Не откажусь от уже готового класса, если таковой имеется. С уважением и надеждой! |
||||||
|
|||||||
| vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: 0 Всего: 0 |
читать это потом вот это ну а если хочется покопаться в коде, создаете MDI или SDI приложение с стилем Office и можете там копошиться. Добавлено через 42 секунды перенесите тему пожалуйста. |
|||
|
||||
| LerikCo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.4.2014 Репутация: нет Всего: нет |
vol4ek, не очень понял, зачем мне "ленты", если я говорил про меню в стиле 2003?
ЗЫ: Проект изначально написан на VC6. Преобразовывать к другим версиям нежелательно. Это сообщение отредактировал(а) LerikCo - 23.4.2014, 19:55 |
|||
|
||||
| vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: 0 Всего: 0 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |