0

我有一个关于 MFC 的(可能是荒谬的)问题 - SDI 应用程序可以支持多种文档类型吗?(以及在创建新文档时显示“选择文档”对话框,但这不是绝对必要的,我可以自己处理。)我想要做的是我的应用程序表现得像现代办公程序,即每个新文档(某种类型)驻留在自己的应用程序实例中,而不是与其他打开的文档共享公共空间(MDI 的概念)。

如果 SDI 不能提供这样的功能(我最近的实验表明),有人可以建议我如何处理 MDI 下的“打开”命令以在应用程序的新实例中打开文件吗?(同样适用于“新”命令。)

4

2 回答 2

1

MFC将此应用程序类型称为“多个顶级文档”,您可以在MFC App Wizard中选择它:

MFC 应用程序向导

于 2015-11-19T14:32:58.173 回答
0

您只需使用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);
于 2015-11-19T09:34:12.477 回答