![]() |
|
|
![]()
|
|
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Превет.
У меня есть MDI приложение и пункт меню "New document". Скажите пожалуйста где необходимо переопределять функцию OnCreateClient, чтобы при открытии этого документа в нем можно было просмотреть несколько View c помощью CSplitterWnd. Спасибо. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
В наследнике MDIChildFrame - т.е. в рамке вида.
Добавлено @ 12:37 т.е. CMDIChildWnd -------------------- ... |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Теперь получается он для любого пункта меню будет открывать этот документ.
--------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Кто - он?
-------------------- ... |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Получается, что для любого пункта меню открывается один и тот же документ с несколькими View.
Документ!!! Это сообщение отредактировал(а) NewLine - 17.7.2006, 13:45 --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да? даже для пункта "Выход"? И какая связь? Сплиттер нужно создавать заранее, если он вообще нужен. Но кто заставляет создавать его с несколькими панелями сразу? Нет, не документ, а ты. Ну откуда я знаю, чего ты там напрограммировал? -------------------- ... |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
У меня например есть два пункта меню "New Document" и "Second Document" и оба они вызывают виртуальную функцию OnCreateClient, которая определяет показ нескольких View.
А как мне сделать чтоб при выборе одного пункта меню открывался документ с несколькими View, а для другого с одним? Спасибо. Это сообщение отредактировал(а) NewLine - 17.7.2006, 17:27 --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, во первых, ты каждый раз создаешь не 2 вида а больше, но неважно.
Функция OnCreateClient вызывается каждый раз, когда создается новый фрейм. По идее, задачу мог бы решить параметр, переданный в OnCreateClient, в зависимости от которого ты создаешь только одну панель или несколько. Но передать такой параметр проблематично - не предусмотрено. Можно, конечно, мудрить с внутренними переменными или статическими флагами, но это все криво. Поэтому я бы сделала так. В OnCreateClient созавать сплиттер и только одну панель. Далее, один из пунктов меню обрабатывается стандартно - OpenDocumentFile и т.д. Второй - пишешь свой обработчик, где к стандартному коду (который открывает только один вид), добавляешь свой, который создает необходимое число видов в сплиттере фрейма. Но вообще-то более стандартный подход - когда у тебя всегда открывается один вид, а команде меню (скажем, Split) - текущий вид расщепляется. Т.е. обработку Open оставляешь в покое, а в команде Split берешь текущий фрейм и создаешь в сплиттере необходимые панели. Но, возможно, я тебя не поняла, и твой Second Document - это совсем другая сущность. Тогда можно просто создать 2 разных фрейма и, соответственно, 2 шаблона документа. Один пункт меню обрабатываешь с помощью одного шаблона, второй - с помощью другого. -------------------- ... |
|||
|
||||
| NewLine |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Ок.
Спасибо большое за помощь. --------------------
Компания NewLineStudio - Разработка программного обеспеченияOn-CRM.ru - интернет CRM система |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |