Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Ситуация простая. Есть родительская форма и кучка дочерних. Когда я открываю дочернюю из меню родительской формы , то я блокирую пункт меню. Ну чтоб юзер не открыл дочернюю форму еще раз. Теперь. Мне надо после закрытия дочерней формы в меню главной сбросить enable. Т.е в событии закрытия дочерней формы разрешить в меню главной ее открывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 11:51 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Есть способ гораздо проще. Добавь в свою дочернюю форму главное меню, содержащее пункт, который надо отключить. Установи его свойство "отключено". Для наложения меню дочерней формы на меню главной формы надо обоим присвоить свойство MenuItem.MergeType и одинаковый MergeOrder -- Успехов, Роман С. Голубин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:06 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Роман! Я тут наваротил блин... Ну вот На родительской форме такое меню ИмяМеню Итем1 На дочерней мне тоже надо сделать такое же меню? У меня на дочерней вообще нет меню. Сделать меню с одним итемом как на родительской форме? Запутался в конец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:17 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Пример: На родительской форме создаем меню: File NewChild - (separator) Exit Допустим, при открытии дочерней формы надо прикрыть пункт NewChild. Для этого в дочерней форме создаем меню File NewChild (disabled) Далее у всех пунктов меню (и родительских и дочерних), включая сепараторы, устанавливаем свойство MenuItem.MergeType в MergeItems, и указываем порядок объединения (свойство MenuItem.MergeOrder): В родительской форме: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. WBR, Roman S. Golubin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:39 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Спасибо. Получилось. Но только есть одна пакость, меню которое было первым в родительской форме улетело последним... Как с этим быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:49 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Установить MergeOrder у всех пунктов родительского меню. В том порядке, как ты хочешь что бы они располагались. (см. мой пост выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 12:56 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Спасибо,Роман. Все таки хотелось бы знать как обратиться к итему меню родительской формы из дочерней, теперь мне придется в каждой из 30 дочерних менюхи лепить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 13:15 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Ну, это я не считаю минусом, так как в любом случае, имхо, почти у каждой дочерней формы должно быть что добавить в главное меню при ее активизации. Например - пункт меню Close. :-) А если уж так приспичило обратиться напрямую - из дочернего окна вызывай родительское. Например, если родительское окно класса MDIClient, то Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 14:52 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Сделал в родительской форме меню public. Родительское окно класса MDIClient ??? Оно у меня MdiContainer Родительская форма называется FrmMain меню на ней MainMenu1 в меню надо разрешить команду для итема с индексом 1. ((MDIClient)this.MdiParent). Как это понимать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:16 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
EternalСделал в родительской форме меню public. Родительское окно класса MDIClient ??? Да. Стандартный контейнер MDI в MFC. Eternal Родительская форма называется FrmMain меню на ней MainMenu1 в меню надо разрешить команду для итема с индексом 1. ((MDIClient)this.MdiParent). Как это понимать? В данном конкретном случае так: ((FrmMain)this.MdiParent).MainMenu1.MenuItems[1].Disabled = false; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:35 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
А не проще функции нажатия итема написать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 15:48 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Рома , респект и спасибо за терпение. ((FrmMain)this.MdiParent).mainMenu1.MenuItems[0].MenuItems[2].Enabled=true; Работает же ! Sirios Я же разрешаю / запрещаю выбор команды из родительской формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 16:09 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
EternalРома , респект и спасибо за терпение. ((FrmMain)this.MdiParent).mainMenu1.MenuItems[0].MenuItems[2].Enabled=true; Работает же ! имхо, замечательно, но это не правильный подход :-)) Проблемы возникнут сразу, как только в меню попытаешься добавить еще один пункт - придется переписывать все дочерние формы :-) Можно, конечно, затолкать это в родительской форме в отдельную процедуру... но, опять таки, имхо, - не правильно это... :-) Ибо ту же форму можно открыть и не как MDI и тогда опять возникнут проблемы... Самый правильный вариант, опять же, имхо, с добавлением собственного меню в каждую форму и дальнейшем объединении этого меню с родительской формой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 16:26 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
Roman S. Golubin EternalРома , респект и спасибо за терпение. ((FrmMain)this.MdiParent).mainMenu1.MenuItems[0].MenuItems[2].Enabled=true; Работает же ! имхо, замечательно, но это не правильный подход :-)) Проблемы возникнут сразу, как только в меню попытаешься добавить еще один пункт - придется переписывать все дочерние формы :-) Можно, конечно, затолкать это в родительской форме в отдельную процедуру... но, опять таки, имхо, - не правильно это... :-) Ибо ту же форму можно открыть и не как MDI и тогда опять возникнут проблемы... Самый правильный вариант, опять же, имхо, с добавлением собственного меню в каждую форму и дальнейшем объединении этого меню с родительской формой. Я не сомневаюсь в том, что ты говоришь верно. Просто быстрей мне показалось вторым способом. Ну тогды подскажи. Допустим в родительской форме такое меню Меню1 подменю_1 подменю_2 подменю_3 Меню2 подменю_1 подменю_2 подменю_3 И так далее. Я уже столкнулся со сложностями реализации эти способом. ну например... В дочернюю запиндюрил меню и подменюшками и там enable поствил в false , вроде при открытии всепроходит хорошо, срабатывает блокировка, но стоит открыть другую дочернюю форму и снова в родительской форме доступен пункт меню, хоть и merge выбирал и числа в order совпадают. и еще тут проблемс..Как бы командой из меню родительской формы свернуть все дочерние формы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 16:50 |
|
||
|
MDI, как из дочерней формы достучаться до меню родительской формы?
|
|||
|---|---|---|---|
|
#18+
EternalВ дочернюю запиндюрил меню и подменюшками и там enable поствил в false , вроде при открытии всепроходит хорошо, срабатывает блокировка, но стоит открыть другую дочернюю форму и снова в родительской форме доступен пункт меню, хоть и merge выбирал и числа в order совпадают. А, ну тогда все верно. Тогда пункт меню надо гасить в родительской форме, привязывать обработчик к событию Closed каждого дочернего окна и в ней снова включать пункт меню. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. и еще тут проблемс..Как бы командой из меню родительской формы свернуть все дочерние формы... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. -- Удачи, Роман С. Голубин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2004, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32815063&tid=1437723]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
230ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
| others: | 258ms |
| total: | 570ms |

| 0 / 0 |
