|
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14
|
|
Как быть с меню в MDI?14.07.2006, 12:07. Показов 2133. Ответов 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' |
|
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14
|
|
| 14.07.2006, 12:13 [ТС] | |
|
NegotiateMenu=False не помогает, я проверял
0
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 15.07.2006, 03:02 | |
|
... <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
|
|
|
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
|
|
| 15.07.2006, 03:04 | |
|
<EM> ...Незабудь что функции вызываемые из главного меню в дочерних формах нужно сделать Public, иначе произойдет error...</EM>
Vot-vot, i letit vsya inkapsulyaciya, i nakrivaetsya ona mednim tazom. VladConn
0
|
|
|
1 / 1 / 0
Регистрация: 03.12.2011
Сообщений: 14
|
|
| 15.07.2006, 11:14 [ТС] | |
|
[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 | |
|
Подскажите как быть с сабжем. Например, есть форма МДИ. У нее есть дите, у которого есть меню. Как сделать так, чтобы меню ребенка не устанавливалось вместо меню MDI формы. Вообще непонятен смысл этой задумки...
0
|
|
|
2 / 2 / 1
Регистрация: 19.07.2007
Сообщений: 737
|
|
| 31.03.2011, 17:35 | |
|
эти вопросы к мелкософту - это они так придумали. Читай популярные книжки по разработке на VB. Там подробненько описаны разработки программ с интерфейсами MDI и SDI и их отличия.
0
|
|
|
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
|
|
| 31.03.2011, 17:54 | |
|
Смысл з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 | |
|
Так как это это обойти?
Создавать меню динамически через АПИ и сабклассить? Просто напрягает когда надо сделать на дочерней форме попап меню то приходиться делать кучу меню на МДИ форме и скрывать их, а потом показывать и тд. Хотелось бы узнать как народ с этим бореться?
0
|
|
|
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
|
|
| 31.03.2011, 18:23 | |
|
Н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 | |
|
По-моему - насколько помню MSDN - свойство формы NegotiateMenus относится как раз к теме вопроса...
|
|
|
4 / 4 / 0
Регистрация: 15.10.2008
Сообщений: 282
|
|
| 31.03.2011, 21:40 | |
|
2 Comanche:
Если пaмять не изменяет, тo NegotiateMenu не рaбoтaет с MDIChild.
0
|
|
|
Comanche
|
|
| 31.03.2011, 21:48 | |
|
Вот кусок из МСДН:
======================================== ============================ 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 | |
|
Сейч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 | |
|
2 Comanche:
Mike_R прав, не работает. Порой мелкомягкие оригинальны. PS. Спасибо за продвинутый листвью!
0
|
|
| 03.04.2011, 08:49 | |
|
Помогаю со студенческими работами здесь
15
MDI-форма. Как лучше? Как избавится от меню пуск, или как узнать когда это меню открыли? MDI не хочет быть Children
(МЕНЮ В ШАБЛОНЕ) Как быть? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|