Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > Нужна помощь |
Автор: OverBug 6.5.2006, 22:56 | ||
Возможно ли так сделать? Есть MDI проект. В нем одно Doc/View представление. Добавил еще один View и нужно его привязать к существующему Doc, причем Parent у этого View является ControlBar (вернее унаследованный от него класс). Т.е. надо в MDI приложении создать Doc/2View. Не знаю как лучше это сделать. Сначала хотел для второго View использовать DDX, но он вроде-бы работает с классами на основе CDialog. Или
Впринципе, все это для того, чтобы обмениватся данными этому Доку еще с View. Может есть другой способ? |
Автор: Dray 7.5.2006, 00:03 |
http://forum.vingrad.ru/index.php?showtopic=34949 |
Автор: Autumn 7.5.2006, 16:51 |
Так можно работать с любым классом, производным от Cwnd, а не только с диалогом. Просто это чаще используется при работе с блоками диалога |
Автор: OverBug 7.5.2006, 21:27 | ||||||
Coocky
в поиске на эту тему ничего нету. http://vingrad.ru/CPP-ART-CPP-002271 тоже нет. Продолжение не могу найти. LexaK,
![]() Мне хотя-бы маленькийпример того как к существующему Доку привязать существующий Вьюв. Но...
|
Автор: OverBug 14.5.2006, 10:20 |
С этим проблем нет, я использую http://www.datamekanix.com/sizecbar/(спасибо http://forum.vingrad.ru/index.php?showtopic=90143). Сам вью создается при создании гланого окна, когда создаются статус, управления и контрол бары, вызовом метода Create и привязывается к ContolBar. Возникла проблема отображения в нем данных из других классов. Ничего кроме как привязать к нему документ не придумал, да и ктомуже это удобнее... но конкретно как? |
Автор: Earnest 15.5.2006, 13:33 |
Уже писала: |
Автор: OverBug 16.5.2006, 19:39 |
После добавления этого вью, при создании документа когда будет создаваться добавленный вью? Т.е. Есть чилд вью+документ, добавлю к нему свой вью (кстати когда и где лучше это сделать), при создании чилда, добаленный вью создатся сразу или его нужно создать? |
Автор: Earnest 17.5.2006, 08:08 | ||
Никогда он сам не будет создаваться. Ты обязан сам его ручками создать, и только потом добавить. Вью в списке документа должны быть валидными. Когда делать, зависит от задачи. Если в панели только один такой вью, то логичнее всего - когда создаешь панель. А если несколько (например, для каждого документа создается закладка или просто страница) - то при загрузке документа. Кстати, имей в виду, что стандартный механизм МФЦ закрывает (выгружает) документ, когда закрывается его последний вью. Но это только если вью живет в стандартном фрейме. В твоем случае, тебе придется вручную проверять, что остался только вью в панели, и закрывать документ принудительно. Добавлено @ 08:16
Между прочим, это не самый лучший метод, ИМХО. Т.е. я тоже когда-то так делала - чтобы работал механизм CDocument::UpdateAllViews и автоматически отображались изменения. Но столкнулась с необходимостью заката солнца вручную (насчет закрытия документа). Потом просто сделала свой параллельный механизм событий без привязки к MFC-архитектуре. Т.е. документ (или кто там еще) просто генерирует событие определенного типа, а любой, кто хочет, на него реагирует. Свой механизм можно сделать более гибким (с учетом потоков и прочего), а с MFC он будет сосуществовать мирно. Так что подумай. |