Несколько типов документов в приложении SDI (или просто возможность MDI?)

У меня есть (возможно, смешной) вопрос о MFC — может ли приложение SDI поддерживать несколько документов типы? (Наряду с отображением диалога «выбрать документ» при создании нового документа, но это не является абсолютно необходимым, и я мог бы справиться с этим сам.) Я хочу, чтобы мое приложение вело себя как современные офисные программы, то есть каждый новый документ (некоторого типа), находящиеся в своем собственном экземпляре приложения, вместо совместного использования общего пространства с другими открытыми документами (концепция MDI).

Если SDI не может предоставить такую ​​функциональность (о чем свидетельствуют мои недавние эксперименты), может кто-нибудь посоветовать мне, как обрабатывать команду «open» в MDI, чтобы открыть файл в новом экземпляре приложения? (То же самое относится и к «новой» команде.)

0

Решение

MFC называет этот тип приложения «Несколько документов верхнего уровня», и вы можете выбрать его в мастере приложений MFC:

Мастер приложений MFC

1

Другие решения

вам просто нужно добавить шаблоны документов, используя CWinApp :: AddDocTemplate
Ссылка msdn предоставляет только пример с CMultiDocTemplateпоэтому я включил здесь пример с CSingleDocTemplate это генерируется при создании нового проекта с Visual Studio.

// Register the application's document templates.  Document templates
//  serve as the connection between documents, frame windows and views
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CSDITestDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CSDITestView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
0

По вопросам рекламы [email protected]