Как сделать такое меню?
От: letika  
Дата: 24.05.07 13:50
Оценка:
Привет!

Не могу подступиться к созданию вот такого вот меню.
Кто подскажет, с чего начать? Интересует именно задание формы меню, остальное вроде понятно…

Вот само меню:
Re: Как сделать такое меню?
От: Clickmaker Россия http://relaxander.webest.net/
Дата: 25.05.07 09:06
Оценка:
Удалено избыточное цитирование. — SchweinDeBurg

Здравствуйте, letika, Вы писали:

L>Не могу подступиться к созданию вот такого вот меню.

L>Кто подскажет, с чего начать? Интересует именно задание формы меню, остальное вроде понятно…

смотри в сторону MF_MENUBREAK и MF_OWNERDRAW
Re[2]: Как сделать такое меню?
От: letika  
Дата: 30.05.07 07:16
Оценка:
Здравствуйте, Clickmaker, Вы писали:

C>смотри в сторону MF_MENUBREAK и MF_OWNERDRAW

Точно, спасибо.

Теперь другой вопрос, как нарисовать menu bar в произвольном месте? Просто окно без заголовка (Border=None), а при прицеплении меню (SetMenu) оно начинает рисоваться над клиентской частью. Как прорисовать его ниже?
Re[3]: Как сделать такое меню?
От: letika  
Дата: 01.06.07 14:35
Оценка:
Здравствуйте, letika, Вы писали:

L>Теперь другой вопрос, как нарисовать menu bar в произвольном месте? Просто окно без заголовка (Border=None), а при прицеплении меню (SetMenu) оно начинает рисоваться над клиентской частью. Как прорисовать его ниже?

В общем, странно. SetMenu отказывается цепляться к дочернему окну, но как тогда меню цепляют к всяким rebar контролам? Посмотрел в сорцы, там есть SetMenu тоже, но при отладке оно возвращает 0, хотя меню всё же рисуется.

Решил сделать по-другому: самому отрисовывать панель меню (menu bar), чтобы спозиционировать в нужное место. Но возникла другая проблема: при показе подменю (которое показывается по нажатии на "Файл", например) окно, на котором рисуется меню, перестаёт принимать сообщения движения мыши и перерисовки

Вопрос: как сделать, чтобы при показе подменю (TrackPopupMenu) окно реагировало на перемещения мыши и перерисовку?

Буду благодарен за любые наставления по теме.
Re: Как сделать такое меню?
От: letika  
Дата: 13.08.07 08:26
Оценка:
Здравствуйте, letika, Вы писали:

L>Кто подскажет, с чего начать? Интересует именно задание формы меню, остальное вроде понятно…

Главное, чем закончить. А закончить надо написанием собственного контрола "меню".
Re[4]: Как сделать такое меню?
От: Symon Россия  
Дата: 13.08.07 09:23
Оценка:
Здравствуйте, letika, Вы писали:

L>В общем, странно. SetMenu отказывается цепляться к дочернему окну, но как тогда меню цепляют к всяким rebar контролам? Посмотрел в сорцы, там есть SetMenu тоже, но при отладке оно возвращает 0, хотя меню всё же рисуется.


SetMenu не работает с окнами со стилем WS_CHILD. Т.е. эта функция бессмысленна для дочерних окон.
Re[4]: Как сделать такое меню?
От: PanychY  
Дата: 13.08.07 12:06
Оценка:
Здравствуйте, letika, Вы писали:

L>Решил сделать по-другому: самому отрисовывать панель меню (menu bar), чтобы спозиционировать в нужное место. Но возникла другая проблема: при показе подменю (которое показывается по нажатии на "Файл", например) окно, на котором рисуется меню, перестаёт принимать сообщения движения мыши и перерисовки


L>Вопрос: как сделать, чтобы при показе подменю (TrackPopupMenu) окно реагировало на перемещения мыши и перерисовку?


сабклась оконный клас меню и так обрабатывай нужные сообщения.
Re[5]: Как сделать такое меню?
От: letika  
Дата: 16.08.07 15:11
Оценка:
Здравствуйте, PanychY, Вы писали:

PY>сабклась оконный клас меню и так обрабатывай нужные сообщения.

Там проще было сделать меню не модальным.
Re[4]: Как сделать такое меню?
От: Vis Украина  
Дата: 21.08.07 11:59
Оценка:
Удалено избыточное цитирование. — SchweinDeBurg

Здравствуйте, letika, Вы писали:

L>Вопрос: как сделать, чтобы при показе подменю (TrackPopupMenu) окно реагировало на перемещения мыши и перерисовку?


Насчёт перемещений: я подобную задаче решал с помощью "мышиных хуков" (cм. SetWindowHookEx).

Насчёт перерисовки: не совсем понятно, какая такая перерисовка?
[от модератора]
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 21.08.07 13:04
Оценка:
Убедительная просьба — следить за объемом цитирования.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.