天天看点

MFC多文档与单文档结构的区别

1、多文档

CMultiDocTemplate* pDocTemplate;

pDocTemplate1 = new CMultiDocTemplate(

IDR_DRAWDATA,

RUNTIME_CLASS(CDrawDoc),

RUNTIME_CLASS(CChildFrame), // custom MDI child frame

RUNTIME_CLASS(CDrawView));

用CDrawDoc CDrawView CChildFrame构成了文档视图框架结构,由CMultiDocTemplate管理

CChildFrame继承CMDIChildWnd,是文档视图框架结构的框架部分

CMainFrame继承CMDIFrameWnd 是MDI应用程序的主框架,包含一些菜单和工具栏

2、单文档

CMainFrame直接继承CFrameWnd

// 将用作文档、框架窗口和视图之间的连接

CSingleDocTemplate* pDocTemplate;

pDocTemplate = new CSingleDocTemplate(

IDR_MAINFRAME,

RUNTIME_CLASS(C单文档Doc),

RUNTIME_CLASS(CMainFrame),       // 主 SDI 框架窗口

RUNTIME_CLASS(C单文档View));

用C单文档Doc C单文档View  CMainFrame构成了文档视图框架结构,由CSingleDocTemplate管理,

不过这里只有一个主框架CMainFrame

3、没有文档的视图框架结构 

用vs创建工程的时候选择单文档,注意不要勾选“文档视图结构支持”

此时的CMyView在主窗口类里面创建,占据了CMainFrame的灰色工作区