0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 14
1

Как быть с меню в MDI?

14.07.2006, 12:07. Показов 1840. Ответов 14
Метки нет (Все метки)

Я когда то тоже задавал этот вопрос.
Нужно делать так. Создаешь все менюшки для дочерних форм в главной MDI форме и делаешь их скрытыми. В событиях дочерних форм Activate/deact.. пишешь код чтобы соответствующая менюшка visible=true при активации формы и наоборот false при деактивации. Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2006, 12:07
Ответы с готовыми решениями:

Отображение меню формы + меню MDI
Привет всем Как сделать так, чтобы при открытии формы отображалось и меню MDI формы, и ее...

Сканировать меню в MDI и помещать в TreeView
Подскажите как это делается? Задача - помещать пункты меню в TreeView дочерней формы. Собственно...

Ошибка в MDI: 'No MDI Form available to load'
Проблема такая: есть несколько проектов ActiveX Control, в каждом из которых есть формы MDIChild. И...

MDI-форма. Как лучше?
1.Есть MDI в ней через меню New открываются новые окошки-формы, но запускается она пустая(только...

14
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 14
14.07.2006, 12:13  [ТС] 2
NegotiateMenu=False не помогает, я проверял
0
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
15.07.2006, 03:02 3
... <EM>You can't negotiate menus between an MDIForm object and an object on the MDIForm</EM>...
Drugimi slovami, dochernie menu obyazani podavlyat' MDI menu i naoborot.
Palliative s psevdo dochernimi menu v MDI forme mozhet bit' ispol'zovan. No eto ne budut nastoyaschie dochernie menu.
VladConn
0
5 / 5 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
15.07.2006, 03:04 4
<EM> ...Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error...</EM>
Vot-vot, i letit vsya inkapsulyaciya, i nakrivaetsya ona mednim tazom.
VladConn
0
0 / 0 / 0
Регистрация: 03.12.2011
Сообщений: 14
15.07.2006, 11:14  [ТС] 5
[quote]VladConn (14.07.2006)
<EM> ...Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error...</EM>
Vot-vot, i letit vsya inkapsulyaciya, i nakrivaetsya ona mednim tazom.
А что, у тебя есть более красивое решение?
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
31.03.2011, 17:07 6
Подскажите как быть с сабжем. Например, есть форма МДИ. У нее есть дите, у которого есть меню. Как сделать так, чтобы меню ребенка не устанавливалось вместо меню MDI формы. Вообще непонятен смысл этой задумки...
0
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
31.03.2011, 17:35 7
эти вопросы к мелкософту - это они так придумали. Читай популярные книжки по разработке на VB. Там подробненько описаны разработки программ с интерфейсами MDI и SDI и их отличия.
0
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 17:54 8
Смысл зaдумки Вaм уже пoсoветoвaли где выяснить...
A вoт кaк сделaть - этo зaвисит oт тoгo чтo Вы хoтите сделaть. Я тaк пoнял чтo Вы хoтите иметь oбa меню oрткрытыми, тaк?
Тoгдa сoздaйте oднo меню - нa MDI. В мoмент aктивaции/деaктвaции дoчерней фoрмы меняйте Visible тoй чaсти меню oтнoсится к дoчерней фoрме.
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
31.03.2011, 18:02 9
Так как это это обойти?
Создавать меню динамически через АПИ и сабклассить?
Просто напрягает когда надо сделать на дочерней форме попап меню то приходиться делать кучу меню на МДИ форме и скрывать их, а потом показывать и тд. Хотелось бы узнать как народ с этим бореться?
0
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 18:23 10
Нaвернoе мoжнo сoздaвaть динaмически и т.д. и т.п....
нo, с другoй стoрoны - Вы же всё рaвнo сoздaёте этo меню нa дoчерней фoрме через Menu Editor. Пoчему не сoздaть егo срaзу нa MDI фoрме?
0
Comanche
31.03.2011, 21:29 11
По-моему - насколько помню MSDN - свойство формы NegotiateMenus относится как раз к теме вопроса...
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 21:40 12
2 Comanche:
Если пaмять не изменяет, тo NegotiateMenu не рaбoтaет с MDIChild.
0
Comanche
31.03.2011, 21:48 13
Вот кусок из МСДН:
============================== ============================== ========
Using the NegotiateMenus property, you determine if the menu bar of a form will share (or negotiate) space with the menus of an active object on the form. If you don't want to include the menus of the active object on the menu bar of your form, set NegotiateMenus to False.

You can't negotiate menus between an MDIForm object and an object on the MDIForm.

If NegotiateMenus is set to True, the form must have a menu bar defined, even if the menu bar isn't visible. If the MDIChild property of the form is set to True, the menus of the active object are displayed on the menu bar of the MDI parent window (MDIForm object).

When NegotiateMenus is set to True, you can use the NegotiatePosition property of individual Menu controls to determine the menus that your form displays along with the menus of the active object.
============================== ============================== ========

Вроде - согласно 3-ему абзацу - установка у ребёнка свойства в FALSE должна решить обсуждаемую проблему.
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
31.03.2011, 21:52 14
Сейчaс пoпрoбoвaть не мoгу, нo пoмню чтo не рaбoтaлo...
0
1 / 1 / 0
Регистрация: 25.05.2008
Сообщений: 232
03.04.2011, 08:49 15
2 Comanche:
Mike_R прав, не работает. Порой мелкомягкие оригинальны.
PS. Спасибо за продвинутый листвью!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2011, 08:49
Помогаю со студенческими работами здесь

Как избавится от меню пуск, или как узнать когда это меню открыли?
Как избавится от меню пуск, или как узнать когда это меню открыли???

MDI не хочет быть Children
Вот вопрос возник. Пишу программу. Сначала были просто отдельные формы, но захотелось сделать MDI....

Как настроить соответствие размеров MDI-контейнера и MDI-формы?
Здравствуйте! Я для вкладки &quot;TbpDaSubekt&quot; сделал MDI-форму &quot;FrmTipHran&quot;: FrmTipHran.TopLevel =...

(МЕНЮ В ШАБЛОНЕ) Как быть?
Доброго Вам времени суток Уважаемые программисты. Я заранее прошу прощения, за глупый вопрос,...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru