Нужно сделать приложение, которое:
А) работает не более, чем с одним документом
Б) документ может иметь много представлений одновременно
AppWizard позволяет создать SDI и MDI-прилодения. В SDI-приложении не выполняется пункт Б), а в MDI-приложении не выполняется пункт А). Я так понимаю, что нужно взять MDI-приложение за основу и как-то ограничить количество открываемых в нем документов. Это, должно быть, проще, чем добавить MDI-GUI к SDI-приложению.
Попытки заменить MDI-приложение, CMultiDocTemplate на CSingleDocTemplate к успеху не привели: MFC проверяет тип DocTemplate-а, срабатывают assert-ы.
Здравствуйте, todritab, Вы писали:
T>Нужно сделать приложение, которое: T>А) работает не более, чем с одним документом
Уточни, с одним типом документа или с одним экземпляром документа?
T>Б) документ может иметь много представлений одновременно
Можно создать любое количество CView внутри Frame'а. Так же никто не мешает создать несколько фреймов, правда ручной работы чуть больше.
Документ не ограничивает количество фреймов (он о них вообще не знает), так что можно наплодить кучу вьюшек, ссылающихся на один Документ, каждую в своем фрейме.
Должно быть применимо как для MDI, так и для SDI.
T>AppWizard позволяет создать SDI и MDI-прилодения. В SDI-приложении не выполняется пункт Б), а в MDI-приложении не выполняется пункт А). Я так понимаю, что нужно взять MDI-приложение за основу и как-то ограничить количество открываемых в нем документов. Это, должно быть, проще, чем добавить MDI-GUI к SDI-приложению.
T>Попытки заменить MDI-приложение, CMultiDocTemplate на CSingleDocTemplate к успеху не привели: MFC проверяет тип DocTemplate-а, срабатывают assert-ы.
Нафига? Достаточно обрабатывать самостоятельно команды ID_FILE_OPEN, ID_FILE_NEW.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Уточни, с одним типом документа или с одним экземпляром документа?
С одним экземпляром документа.
Тип документа, пока, тоже, только один. Возможно (но вряд ли), в будущем добавятся еще типы. Но в любом случае, программа должна работать только с одним экземпляром документа.
Ну, или вообще без экземпляров документов.
T>>Б) документ может иметь много представлений одновременно
T>>Попытки заменить MDI-приложение, CMultiDocTemplate на CSingleDocTemplate к успеху не привели: MFC проверяет тип DocTemplate-а, срабатывают assert-ы.
SVZ>Нафига? Достаточно обрабатывать самостоятельно команды ID_FILE_OPEN, ID_FILE_NEW.
Сгенеренное AppWizard-ом MDI-приложение меня не устраивает только тем, что при открытии файла CMultiDocTemplate плодит новые экземпляры документов. Поэтому я и решил попробовать заменить CMultiDocTemplate на CSingleDocTemplate.
Здравствуйте, todritab, Вы писали:
T>Нужно сделать приложение, которое: T>А) работает не более, чем с одним документом T>Б) документ может иметь много представлений одновременно
T>AppWizard позволяет создать SDI и MDI-прилодения. В SDI-приложении не выполняется пункт Б), а в MDI-приложении не выполняется пункт А). Я так понимаю, что нужно взять MDI-приложение за основу и как-то ограничить количество открываемых в нем документов. Это, должно быть, проще, чем добавить MDI-GUI к SDI-приложению.
T>Попытки заменить MDI-приложение, CMultiDocTemplate на CSingleDocTemplate к успеху не привели: MFC проверяет тип DocTemplate-а, срабатывают assert-ы.
Несколько видов View с одним общим документом, но при сохранении MDI-приложения.
Регистрируем несколько экземпляров CMultiDocTemplate — ИМХО это именно то, что Вам и нужно.