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
|
|
14.07.2006, 12:07 | |
Ответы с готовыми решениями:
14
Отображение меню формы + меню MDI Сканировать меню в MDI и помещать в TreeView Ошибка в MDI: 'No MDI Form available to load' MDI-форма. Как лучше? |
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
|
03.04.2011, 08:49 | |
Помогаю со студенческими работами здесь
15
Как избавится от меню пуск, или как узнать когда это меню открыли? MDI не хочет быть Children
(МЕНЮ В ШАБЛОНЕ) Как быть? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |